Star the top eight most stared repos in Gitlab
RootWebArea 'Projects ยท Dashboard ยท GitLab', focused, url='http://127.0.0.1:8023/' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [6] button '', hasPopup='menu', expanded=False list '' listitem '' [7] textbox 'Search GitLab' StaticText '/' list '' listitem '' [8] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [9] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [10] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [11] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [12] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [13] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [14] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [15] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [16] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [17] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [18] link 'All', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [19] link 'Personal', url='http://127.0.0.1:8023/?personal=true&sort=stars' list '' listitem '' [20] link 'A', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' heading 'The A11Y Project / a11yproject.com' [126] link 'The A11Y Project / a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' StaticText 'Maintainer' paragraph '' StaticText 'The A11Y Project is a community-driven effort to make digital accessibility easier.' [21] link '21', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/starrers' [22] link '0', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/forks' [23] link '9', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/merge_requests' [24] link '40', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:36am GMT+0600' StaticText '22 hours ago' listitem '' [25] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' heading 'Byte Blaze / a11y-webring.club' [127] link 'Byte Blaze / a11y-webring.club', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' StaticText 'Owner' paragraph '' StaticText '๐ A webring for digital accessibility practitioners.' [26] link '2', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/starrers' [27] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/forks' [28] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/merge_requests' [29] link '4', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/issues' StaticText 'Updated' time 'Nov 8, 2025 12:16am GMT+0600' StaticText '1 day ago' listitem '' [30] link 'D', url='http://127.0.0.1:8023/primer/design' heading 'Primer / design' [128] link 'Primer / design', url='http://127.0.0.1:8023/primer/design' StaticText 'Developer' paragraph '' StaticText 'Primer Design Guidelines' [31] link '21', url='http://127.0.0.1:8023/primer/design/-/starrers' [32] link '0', url='http://127.0.0.1:8023/primer/design/-/forks' [33] link '16', url='http://127.0.0.1:8023/primer/design/-/merge_requests' [34] link '21', url='http://127.0.0.1:8023/primer/design/-/issues' StaticText 'Updated' time 'Nov 7, 2025 2:47pm GMT+0600' StaticText '1 day ago' listitem '' [35] link 'R', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' heading 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline' [129] link 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' StaticText 'Owner' paragraph '' StaticText "This extension can remove and restore the presence of timeline items generated by a project board event from GitHub's timeline." [36] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/starrers' [37] link '1', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/forks' [38] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/merge_requests' [39] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [40] link 'E', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' heading 'Byte Blaze / ericwbailey.website' [130] link 'Byte Blaze / ericwbailey.website', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' StaticText 'Owner' paragraph '' StaticText '๐ Repo for my personal website.' [41] link '2', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/starrers' [42] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/forks' [43] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/merge_requests' [44] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [45] link 'E', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' heading 'Byte Blaze / empathy-prompts' [131] link 'Byte Blaze / empathy-prompts', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' StaticText 'Owner' paragraph '' StaticText '๐ก Ideas to help consider Inclusive Design principles when making things for others to use.' [46] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/starrers' [47] link '1', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/forks' [48] link '2', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/merge_requests' [49] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/issues' StaticText 'Updated' time 'Nov 7, 2025 5:57pm GMT+0600' StaticText '1 day ago' listitem '' [50] link 'T', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' heading 'Byte Blaze / Title Wanted' [132] link 'Byte Blaze / Title Wanted', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' StaticText 'Owner' paragraph '' StaticText 'I need some space.' [51] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/starrers' [52] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/forks' [53] link '1', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/merge_requests' [54] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/issues' StaticText 'Updated' time 'Nov 8, 2025 9:57am GMT+0600' StaticText '14 hours ago' listitem '' [55] link 'A', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' heading 'Byte Blaze / accessible-html-content-patterns' [133] link 'Byte Blaze / accessible-html-content-patterns', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' StaticText 'Owner' paragraph '' StaticText 'โฟ ๏ธ The full HTML5 Doctor Element Index as well as common markup patterns for quick reference.' [56] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/commit/b0ef90f34aa86371fca1525b64bace8575d48d53/pipelines?ref=main' [57] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/starrers' [58] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/forks' [59] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/merge_requests' [60] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/issues' StaticText 'Updated' time 'Nov 7, 2025 10:49pm GMT+0600' StaticText '1 day ago' listitem '' [61] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' heading 'Byte Blaze / a11y-syntax-highlighting' [134] link 'Byte Blaze / a11y-syntax-highlighting', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' StaticText 'Owner' paragraph '' StaticText '๐ Accessible light and dark syntax highlighting themes' [62] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/commit/ab7d4264d15ceb38403d7b5ec9e348588abfe552/pipelines?ref=main' [63] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/starrers' [64] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/forks' [65] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/merge_requests' [66] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/issues' StaticText 'Updated' time 'Nov 7, 2025 11:26pm GMT+0600' StaticText '1 day ago' listitem '' [67] link 'M', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' heading 'Byte Blaze / millennials-to-snake-people' [135] link 'Byte Blaze / millennials-to-snake-people', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' StaticText 'Owner' paragraph '' StaticText "๐ Chrome extension that replaces occurrences of 'Millennials' with 'Snake People'" [68] link '6', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/starrers' [69] link '0', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/forks' [70] link '2', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/merge_requests' [71] link '4', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [72] link 'S', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' heading 'Byte Blaze / solarized-prism-theme' [136] link 'Byte Blaze / solarized-prism-theme', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' StaticText 'Owner' paragraph '' StaticText 'solarized theme for prism.js' [73] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/starrers' [74] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/forks' [75] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/merge_requests' [76] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/issues' StaticText 'Updated' time 'Apr 25, 2023 3:23am GMT+0600' StaticText '2 years ago' listitem '' [77] link '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' image '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/avatar?width=48' heading 'Byte Blaze / cloud-to-butt' [137] link 'Byte Blaze / cloud-to-butt', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' StaticText 'Owner' paragraph '' StaticText "Chrome extension that replaces occurrences of 'the cloud' with 'my butt'" [78] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/starrers' [79] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/forks' [80] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/merge_requests' [81] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 9:20pm GMT+0600' StaticText '1 day ago' listitem '' [82] link 'T', url='http://127.0.0.1:8023/byteblaze/timeit' heading 'Byte Blaze / timeit' [138] link 'Byte Blaze / timeit', url='http://127.0.0.1:8023/byteblaze/timeit' StaticText 'Owner' paragraph '' StaticText 'Rails implementation of time tracking tool timeit' [83] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/starrers' [84] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/forks' [85] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/merge_requests' [86] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'D', url='http://127.0.0.1:8023/byteblaze/dotfiles' heading 'Byte Blaze / dotfiles' [139] link 'Byte Blaze / dotfiles', url='http://127.0.0.1:8023/byteblaze/dotfiles' StaticText 'Owner' paragraph '' StaticText '๐ค Computer setup' [88] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/starrers' [89] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/forks' [90] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/merge_requests' [91] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/issues' StaticText 'Updated' time 'Nov 8, 2025 10:06pm GMT+0600' StaticText '2 hours ago' listitem '' [92] link '2', url='http://127.0.0.1:8023/byteblaze/2019-nCov' heading 'Byte Blaze / 2019-nCov' [140] link 'Byte Blaze / 2019-nCov', url='http://127.0.0.1:8023/byteblaze/2019-nCov' StaticText 'Owner' paragraph '' StaticText 'Use Google Maps Timeline data to compare with COVID-19 patient history location.' [93] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/starrers' [94] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/forks' [95] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/merge_requests' [96] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/issues' StaticText 'Updated' time 'Nov 7, 2025 6:54pm GMT+0600' StaticText '1 day ago' listitem '' [97] link 'P', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' heading 'Byte Blaze / PyTorch-GAN' [141] link 'Byte Blaze / PyTorch-GAN', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' StaticText 'Owner' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [98] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/starrers' [99] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/forks' [100] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/merge_requests' [101] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [102] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt' heading 'Byte Blaze / Chatgpt' [142] link 'Byte Blaze / Chatgpt', url='http://127.0.0.1:8023/byteblaze/chatgpt' StaticText 'Owner' [103] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/starrers' [104] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/forks' [105] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/merge_requests' [106] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:56pm GMT+0600' StaticText '1 day ago' listitem '' [107] link 'M', url='http://127.0.0.1:8023/byteblaze/metaseq' heading 'Byte Blaze / metaseq' [143] link 'Byte Blaze / metaseq', url='http://127.0.0.1:8023/byteblaze/metaseq' StaticText 'Owner' paragraph '' StaticText 'Repo for external large-scale work' [108] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/starrers' [109] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/forks' [110] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/merge_requests' [111] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/issues' StaticText 'Updated' time 'Nov 7, 2025 8:13pm GMT+0600' StaticText '1 day ago' listitem '' [112] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' heading 'Byte Blaze / chatgpt_plugin' [144] link 'Byte Blaze / chatgpt_plugin', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' StaticText 'Owner' [113] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/starrers' [114] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/forks' [115] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/merge_requests' [116] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:42pm GMT+0600' StaticText '9 hours ago' listitem '' [117] link 'A', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' heading 'Byte Blaze / awesome_llm_reading' [145] link 'Byte Blaze / awesome_llm_reading', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' StaticText 'Owner' [118] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/starrers' [119] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/forks' [120] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/merge_requests' [121] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/issues' StaticText 'Updated' time 'Nov 8, 2025 3:04pm GMT+0600' StaticText '9 hours ago' list '' listitem '' [122] link 'Prev', url='http://127.0.0.1:8023/#' listitem '' [123] link '1', url='http://127.0.0.1:8023/?non_archived=true&sort=stars' listitem '' [124] link '2', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars' listitem '' [125] link 'Next', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars'
To add a star to a repository, the typical GitLab UI requires navigating to the repository's main page and clicking the star icon. The star button is not present in the list view, so the next step is to open one of the highโstar repositories, star it, and repeat for the remaining seven.
click('20')RootWebArea 'The A11Y Project / a11yproject.com ยท GitLab', focused, url='http://127.0.0.1:8023/a11yproject/a11yproject.com' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/a11yproject/a11yproject.com#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [24] button '', hasPopup='menu', expanded=False list '' listitem '' [25] textbox 'Search GitLab' StaticText '/' list '' listitem '' [26] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [27] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [28] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [29] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [30] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [31] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' complementary 'Project navigation' list '' listitem 'a11yproject.com' [32] link 'a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' StaticText 'A' listitem '' [33] link 'Project information', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/activity' listitem '' [34] link 'Repository', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main' listitem '' [35] link 'Issues', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/issues' StaticText '40' listitem '' [36] link 'Merge requests', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/merge_requests' StaticText '9' listitem '' [37] link 'CI/CD', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/pipelines' list '' listitem '' [89] link 'Pipelines', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/pipelines' listitem '' [90] link 'Editor', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/ci/editor?branch_name=main' listitem '' [91] link 'Jobs', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/jobs' listitem '' [92] link 'Schedules', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/pipeline_schedules' listitem '' [38] link 'Security & Compliance', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/security/configuration' listitem '' [39] link 'Deployments', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/environments' listitem '' [40] link 'Packages and registries', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/packages' listitem '' [41] link 'Infrastructure', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/clusters' listitem '' [42] link 'Monitor', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/metrics' listitem '' [43] link 'Analytics', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/value_stream_analytics' listitem '' [44] link 'Wiki', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/wikis/home' listitem '' [45] link 'Snippets', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/snippets' listitem '' [46] link 'Settings', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/edit' [3] button 'Collapse sidebar' alert '', live='assertive', atomic, relevant='additions text' [4] button 'Dismiss' alert '', live='assertive', atomic, relevant='additions text' StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile." [20] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys' [21] button "Don't show again" navigation 'Breadcrumbs' list '' listitem '' [47] link 'The A11Y Project', url='http://127.0.0.1:8023/a11yproject' listitem '' [48] link 'a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' main '' StaticText 'A' heading 'a11yproject.com' StaticText 'Project ID: 174' [5] button 'Copy project ID', live='polite', relevant='additions text' [6] link 'Leave project', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/project_members/leave' [7] button '', hasPopup='menu', expanded=False [8] button 'Unstar' [9] link '21', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/starrers' [10] link 'Fork', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/forks/new' [11] link '0', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/forks' navigation '' list '' listitem '' [76] link '2,320 Commits', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commits/main' [93] strong '' StaticText '2,320' listitem '' [77] link '15 Branches', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/branches' [94] strong '' StaticText '15' listitem '' [78] link '5 Tags', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tags' [95] strong '' StaticText '5' listitem '' [79] link '85.5 MB Project Storage', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/usage_quotas' [96] strong '' StaticText '85.5 MB' listitem '' [80] link '5 Releases', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/releases' [97] strong '' StaticText '5' paragraph '' StaticText 'The A11Y Project is a community-driven effort to make digital accessibility easier.' image 'user avatar', url='https://www.gravatar.com/avatar/e85e67b83d0af57b5944eb23d3d25d21?s=80&d=identicon' [12] link 'Update...', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/ed37a2f2f0070d24e9e30f06672ceb27d740fb30' [13] button 'Toggle commit description' StaticText 'Eric Bailey authored' time 'Mar 14, 2023 7:04am GMT+0600' StaticText '2 years ago' [14] button 'Unverified' group '' StaticText 'ed37a2f2' [22] button 'Copy commit SHA', live='polite', relevant='additions text' [15] button 'main', hasPopup='menu', expanded=False navigation 'Files breadcrumb' list '' listitem '' [81] link 'a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main/' listitem '' StaticText '/' [82] button 'Add to tree', hasPopup='menu', expanded=False [16] link 'Find file', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/find_file/main' [17] link 'Web IDE', url='http://127.0.0.1:8023/-/ide/project/a11yproject/a11yproject.com/edit/main/-/' [18] button 'Download' StaticText 'Select Archive Format' [19] link 'Clone', url='http://127.0.0.1:8023/a11yproject/a11yproject.com#' list '' listitem '' [49] link 'README', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/README.md' listitem '' [50] link 'Add LICENSE', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/new/main?commit_message=Add+LICENSE&file_name=LICENSE' listitem '' [51] link 'Add CHANGELOG', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/new/main?commit_message=Add+CHANGELOG&file_name=CHANGELOG' listitem '' [52] link 'Add CONTRIBUTING', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/new/main?commit_message=Add+CONTRIBUTING&file_name=CONTRIBUTING.md' listitem '' [53] link 'Enable Auto DevOps', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/settings/ci_cd#autodevops-settings' listitem '' [54] link 'Add Kubernetes cluster', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/clusters' listitem '' [55] link 'Set up CI/CD', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/ci/editor' listitem '' [56] link 'Configure Integrations', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/settings/integrations' table 'Files, directories, and submodules in the path / for commit reference main', live='polite', relevant='additions text' rowgroup '' row '' columnheader 'Name' columnheader 'Last commit' columnheader 'Last update' rowgroup '' row '' cell '.github' [98] link '.github', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main/.github' cell 'Update issue templates' [99] link 'Update issue templates', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/6ecb00e170c51b73cffcb6169c968f1055462d3c' cell '4 years ago' time 'Oct 13, 2021 12:46am GMT+0600' StaticText '4 years ago' row '' cell '.tours' [100] link '.tours', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main/.tours' cell 'Add Jammies announcement (#1354)' [101] link 'Add Jammies announcement (#1354)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/1a0b6922f5920ad2523324aaf8a490b25bfcd41f' cell '4 years ago' time 'Oct 7, 2021 7:21am GMT+0600' StaticText '4 years ago' row '' cell '.vscode' [102] link '.vscode', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main/.vscode' cell 'Add some default settings & suggested extensions' [103] link 'Add some default settings & suggested extensions', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/63bfefb9cf7e36f5336446ee4af5271f98a0d72a' cell '4 years ago' time 'Jul 7, 2021 7:06am GMT+0600' StaticText '4 years ago' row '' cell 'src' [104] link 'src', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/tree/main/src' cell 'Update the-power-of-chatgpt-as-a-cognitive-accessibility-assistive-technology-for-traumatic-brain-injury-survivors.md' [105] link 'Update the-power-of-chatgpt-as-a-cognitive-accessibility-assistive-technology-for-traumatic-brain-injury-survivors.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/ed37a2f2f0070d24e9e30f06672ceb27d740fb30' cell '2 years ago' time 'Mar 14, 2023 7:04am GMT+0600' StaticText '2 years ago' row '' cell '.editorconfig' [106] link '.editorconfig', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.editorconfig' cell 'Use tabs' [107] link 'Use tabs', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/78bc299d18ffe2c516cb076d52820a009d24eaaf' cell '5 years ago' time 'May 30, 2020 10:43pm GMT+0600' StaticText '5 years ago' row '' cell '.eleventy.js' [108] link '.eleventy.js', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.eleventy.js' cell 'Initial draft of post collections feature (#1235)' [109] link 'Initial draft of post collections feature (#1235)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/9e903cec9f392fbda9912f708fe3ca4fc4172dc0' cell '3 years ago' time 'Feb 7, 2022 10:20pm GMT+0600' StaticText '3 years ago' row '' cell '.gitignore' [110] link '.gitignore', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.gitignore' cell 'Add initial batch of icons' [111] link 'Add initial batch of icons', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/65448fcb55929216c91c5bfb016ded1116f4e2b1' cell '5 years ago' time 'Apr 27, 2020 9:27am GMT+0600' StaticText '5 years ago' row '' cell '.jshintignore' [112] link '.jshintignore', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.jshintignore' cell 'Fix misnamed polyfill file (#1045)' [113] link 'Fix misnamed polyfill file (#1045)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/5e37c6f09c5dcef460924912eaf3c8f79565e0e9' cell '5 years ago' time 'Aug 4, 2020 9:49am GMT+0600' StaticText '5 years ago' row '' cell '.jshintrc' [114] link '.jshintrc', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.jshintrc' cell 'Resolve JS and Style linting issues (#947)' [115] link 'Resolve JS and Style linting issues (#947)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/03e6908e980e936aceeaff14756e52593e89102a' cell '5 years ago' time 'Jul 16, 2020 1:03am GMT+0600' StaticText '5 years ago' row '' cell '.nvmrc' [116] link '.nvmrc', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.nvmrc' cell 'Align engines, nvmrc to 16' [117] link 'Align engines, nvmrc to 16', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/dcd5ea0abdcea51aa301c87759e3473edda1b5eb' cell '4 years ago' time 'Jun 25, 2021 3:34pm GMT+0600' StaticText '4 years ago' row '' cell '.stylelintrc' [118] link '.stylelintrc', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/.stylelintrc' SvgRoot '' group 'stylelint-icon-white' cell 'Update stylelint' [119] link 'Update stylelint', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/1c03e34e4439983f90d5465b21420240ba1df913' cell '3 years ago' time 'Mar 17, 2022 7:00am GMT+0600' StaticText '3 years ago' row '' cell 'AUTHORS' [120] link 'AUTHORS', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/AUTHORS' cell 'Add AUTHORS' [121] link 'Add AUTHORS', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/d20a530719955ec7bd1784d24a2ebb7fed25db22' cell '6 years ago' time 'Dec 24, 2018 4:25am GMT+0600' StaticText '6 years ago' row '' cell 'CNAME' [122] link 'CNAME', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/CNAME' cell 'Updating CNAME' [123] link 'Updating CNAME', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/65b07338c7a2857dea6c9bd4e1a5a6016870c756' cell '12 years ago' time 'Jan 15, 2013 3:57am GMT+0600' StaticText '12 years ago' row '' cell 'LICENSE-APLv2' [124] link 'LICENSE-APLv2', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/LICENSE-APLv2' cell 'Create LICENSE-APLv2 (#661)' [125] link 'Create LICENSE-APLv2 (#661)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/64d1fa5e6013289b7366c7de3599ac7ba177be1d' cell '6 years ago' time 'Nov 18, 2018 4:24am GMT+0600' StaticText '6 years ago' row '' cell 'README.md' [126] link 'README.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/README.md' cell 'Update README.md' [127] link 'Update README.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/b32809f2627ee11233dc7f54344980ccae16678c' cell '2 years ago' time 'Feb 28, 2023 7:54am GMT+0600' StaticText '2 years ago' row '' cell 'TECHNOLOGY.md' [128] link 'TECHNOLOGY.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/TECHNOLOGY.md' cell 'edited sentence in TECHNOLOGY.md (#1352)' [129] link 'edited sentence in TECHNOLOGY.md (#1352)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/b961de6e1f80abdb510462f60eeb0f869edb0eb9' cell '4 years ago' time 'Oct 8, 2021 1:57am GMT+0600' StaticText '4 years ago' row '' cell 'TROUBLESHOOTING.md' [130] link 'TROUBLESHOOTING.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/TROUBLESHOOTING.md' cell 'Usability feedback (#1087)' [131] link 'Usability feedback (#1087)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/722b92bcfc1cae87013297f4eb6320fa66e2ae5b' cell '5 years ago' time 'Aug 25, 2020 9:30am GMT+0600' StaticText '5 years ago' row '' cell 'gulpfile.js' [132] link 'gulpfile.js', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/gulpfile.js' cell 'Begin working through richtext content' [133] link 'Begin working through richtext content', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/682c3ecc40ebf4283f0135cdbfb7de1b502e400a' cell '3 years ago' time 'Apr 7, 2022 9:19am GMT+0600' StaticText '3 years ago' row '' cell 'jsconfig.json' [134] link 'jsconfig.json', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/jsconfig.json' cell 'Update project config' [135] link 'Update project config', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/33092eb91ac3a4ce2cd22e9b0cfa70c49c31bdc2' cell '5 years ago' time 'May 30, 2020 10:40pm GMT+0600' StaticText '5 years ago' row '' cell 'manifest.json' [136] link 'manifest.json', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/manifest.json' cell 'Various fixes (#1019)' [137] link 'Various fixes (#1019)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/f27759adb50a9ee008bf04bd618d5f1585c382d9' cell '5 years ago' time 'Jul 24, 2020 9:51pm GMT+0600' StaticText '5 years ago' row '' cell 'netlify.toml' [138] link 'netlify.toml', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/netlify.toml' cell 'Add Kevin Mar-Molinero to the Spotlight (#1445)' [139] link 'Add Kevin Mar-Molinero to the Spotlight (#1445)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/d464386d52f3dc36a4a2ee0879253462df637d4c' cell '3 years ago' time 'Jun 5, 2022 10:53pm GMT+0600' StaticText '3 years ago' row '' cell 'package-lock.json' [140] link 'package-lock.json', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/package-lock.json' cell 'Bump luxon from 2.3.0 to 2.5.2 (#1504)' [141] link 'Bump luxon from 2.3.0 to 2.5.2 (#1504)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/053aa1283a306c415448f8f0fb2d7549448af9ba' cell '2 years ago' time 'Jan 18, 2023 7:04am GMT+0600' StaticText '2 years ago' row '' cell 'package.json' [142] link 'package.json', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/package.json' cell 'Bump nth-check and gulp-svg-sprite (#1483)' [143] link 'Bump nth-check and gulp-svg-sprite (#1483)', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/commit/076922ae2de04afb7fc0f9691d845aad7956887b' cell '3 years ago' time 'Oct 18, 2022 4:30am GMT+0600' StaticText '3 years ago' article '' [23] link 'README.md', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/blob/main/README.md' [57] strong '' StaticText 'README.md' paragraph '' [58] link 'A11Y.', url='https://github.com/a11yproject/a11yproject.com/blob/main/src/img/social/og-image-home.png?raw=true' image 'A11Y.', url='https://github.com/a11yproject/a11yproject.com/blob/main/src/img/social/og-image-home.png?raw=true' heading 'The A11Y Project' paragraph '' StaticText 'The Accessibility' [59] link '(A11Y)', url='https://a11yproject.com/posts/a11y-and-other-numeronyms/' StaticText 'Project is an Open-source, community-driven effort to make digital accessibility easier.' heading 'Contributing' paragraph '' StaticText 'You can learn about helping this project by reading our' [60] link 'Code of Conduct', url='https://a11yproject.com/code-of-conduct/' StaticText ',' [61] link 'Contributor documentation', url='https://a11yproject.com/contributing-guidelines/' StaticText ', and' [62] link 'Content Style Guide', url='https://a11yproject.com/content-style-guide/' StaticText '. Please familiarize yourself with them before submitting content.' paragraph '' StaticText 'This' code '' StaticText 'README' StaticText 'is focused on the technical side of the project. If you are interested in contributing information like Posts or Resources, please refer to our' [63] link 'Contributing Guidelines', url='https://a11yproject.com/contributing-guidelines/' StaticText '.' heading 'Development' heading 'Technology' paragraph '' StaticText 'The A11Y Project uses' [64] link 'Eleventy', url='https://www.11ty.io/' StaticText 'to manage its content. Eleventy relies on' [65] link 'Markdown', url='https://daringfireball.net/projects/markdown/syntax' StaticText ',' [66] link 'Sass', url='https://sass-lang.com/' StaticText ',' [67] link 'Nunjucks', url='https://mozilla.github.io/nunjucks/' StaticText ', and' [68] link 'JSON', url='https://www.json.org/' StaticText 'to function.' paragraph '' StaticText 'It may be helpful to familiarize yourself with these technologies, depending on what you want to do. For more information, check out our' [69] link 'Contributor documentation', url='https://a11yproject.com/contributing-guidelines/' StaticText '.' heading 'Requirements' paragraph '' StaticText "You'll need access to the following programs and technology in order to get the website running on your computer to work on:" list '' listitem '' ListMarker '0.' StaticText 'A command line application such as Terminal.' list '' listitem '' ListMarker 'โฆ' StaticText 'If you want to learn more about working in the command line, Wes Bos offers' [144] link 'a great free course', url='https://commandlinepoweruser.com/' StaticText '.' listitem '' ListMarker 'โฆ' StaticText 'If you are using Windows,' [145] link 'Hyper', url='https://hyper.is/' StaticText 'is a good, free command-line application you can download, install, and run.' listitem '' ListMarker '0.' [83] link 'Git', url='https://git-scm.com/' StaticText 'version control and a' [84] link 'GitHub account', url='https://github.com/' StaticText '.' list '' listitem '' ListMarker 'โฆ' StaticText 'You can check to see if Git is already installed on your computer by typing' code '' StaticText 'git --version' StaticText 'into your command line application. If it is installed it will list the currently installed version (e.g.' code '' StaticText 'git version 2.18.0' StaticText ').' listitem '' ListMarker 'โฆ' StaticText 'If you prefer to use a GUI to work with version control, GitHub offers a' [146] link 'free desktop app', url='https://desktop.github.com/' StaticText '.' listitem '' ListMarker '0.' [85] link 'Node.js', url='https://nodejs.org/en/' StaticText ', a programming environment powered by JavaScript.' list '' listitem '' ListMarker 'โฆ' StaticText 'You can check to see if Node.js is already installed on your computer by typing' code '' StaticText 'node -v' StaticText 'into your command line application. If it is installed it will list the currently installed version (e.g.' code '' StaticText 'v16.4.0' StaticText '). The A11Y Project requires a minimum version of' code '' StaticText '16.0.0' StaticText '.' listitem '' ListMarker 'โฆ' StaticText 'It may also be helpful to use a program such as' [147] link 'nvm', url='https://github.com/creationix/nvm' StaticText "to help manage your Node.js versions. This will ensure that the version of Node.js your computer uses to run various things won't conflict with an updated version. For Windows users, you could use" [148] link 'coreybutler/nvm-windows', url='https://github.com/coreybutler/nvm-windows' StaticText '.' heading 'Installation' paragraph '' StaticText 'Once you have met' [70] link 'the prerequisites', url='http://127.0.0.1:8023/a11yproject/a11yproject.com#requirements' StaticText ', follow these steps to install the website on your computer:' list '' listitem '' ListMarker '0.' StaticText 'Clone this repository by entering this command into your command line application:' code '' StaticText 'git clone https://github.com/a11yproject/a11yproject.com.git' StaticText '. It will create a version-controlled copy of the website in the directory you entered the command in.' listitem '' ListMarker '0.' StaticText "Navigate into the project's" [86] link 'root directory', url='https://en.m.wikipedia.org/wiki/Root_directory' StaticText 'by typing' code '' StaticText 'cd a11yproject.com' StaticText 'in your command line application.' listitem '' ListMarker '0.' StaticText "Install the project's Node.js modules by typing" code '' StaticText 'npm install' StaticText 'into your command line application. A list of these modules should be displayed after they are downloaded and installed.' heading 'Running the website' paragraph '' StaticText 'After cloning and installing project Node.js modules, you will need to tell Node.js to compile the project and turn it into a website. To do this:' list '' listitem '' ListMarker 'โข' [87] strong '' StaticText 'macOS and Linux:' StaticText 'Type' code '' StaticText 'npm start' StaticText 'into your command line application.' listitem '' ListMarker 'โข' [88] strong '' StaticText 'Windows:' StaticText 'Type' code '' StaticText 'npm run eleventy-watch & npm run gulp-watch' StaticText 'into your command line application.' paragraph '' StaticText 'Your command line application will then display some information about Eleventy, including a line that starts with' code '' StaticText 'Local:' StaticText '. You can copy the URL it points to (it should read something like' [71] link 'http://localhost:3000', url='http://localhost:3000/' code '' StaticText 'http://localhost:3000' StaticText ') and paste it into a browser tab. This will load a local copy of the website that you can interact with to preview your changes.' paragraph '' StaticText 'You can also use the' code '' StaticText 'External' StaticText 'URL to preview the local copy on another device connected to the same network, which helps you check to see how the site looks and functions on things like smartphones. This is done via' [72] link 'Browsersync', url='https://www.browsersync.io/' StaticText '.' heading 'Updating the website' paragraph '' StaticText "Saving project files will make Node.js regenerate the website to reflect the changes you made. Your command line application will display some new messaging to reflect this, including any errors you might accidentally make. Don't worry! Since the site uses version control, you're not in danger of seriously breaking anything. If you fix the error, Node.js should continue to run." paragraph '' StaticText 'Make sure you edit the files in the' code '' StaticText 'src/' StaticText 'subdirectory. Any edits made in the' code '' StaticText 'dist' StaticText 'subdirectory will be overwritten by the next change to any file in' code '' StaticText 'src/' StaticText 'and all your hard work will be lost!' heading 'Quitting' paragraph '' StaticText 'You can tell Node.js to stop running by pressing the Control and C keys at the same time in your command line application, or by closing the command line application window or tab.' heading 'Code Tour' paragraph '' StaticText 'If you use' [73] link 'Visual Studio Code', url='https://code.visualstudio.com/' StaticText 'as your code editor, you can take an introductory tour of the repository via the' [74] link 'CodeTour extension', url='https://marketplace.visualstudio.com/items?itemName=vsls-contrib.codetour' StaticText '.' heading 'Troubleshooting' paragraph '' StaticText 'Please refer to our' [75] link 'Troubleshooting documentation', url='https://github.com/a11yproject/a11yproject.com/blob/main/TROUBLESHOOTING.md' StaticText 'for help with issues running the site.'
We must first return to the main list page to access the other project links. The next best action is to navigate back to the previous page, which contains the IDs for the remaining top repos.
go_back()
RootWebArea 'Projects ยท Dashboard ยท GitLab', focused, url='http://127.0.0.1:8023/' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [6] button '', hasPopup='menu', expanded=False list '' listitem '' [7] textbox 'Search GitLab' StaticText '/' list '' listitem '' [8] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [9] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [10] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [11] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [12] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [13] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [14] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [15] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [16] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [17] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [18] link 'All', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [19] link 'Personal', url='http://127.0.0.1:8023/?personal=true&sort=stars' list '' listitem '' [20] link 'A', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' heading 'The A11Y Project / a11yproject.com' [126] link 'The A11Y Project / a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' StaticText 'Maintainer' paragraph '' StaticText 'The A11Y Project is a community-driven effort to make digital accessibility easier.' [21] link '21', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/starrers' [22] link '0', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/forks' [23] link '9', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/merge_requests' [24] link '40', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:36am GMT+0600' StaticText '22 hours ago' listitem '' [25] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' heading 'Byte Blaze / a11y-webring.club' [127] link 'Byte Blaze / a11y-webring.club', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' StaticText 'Owner' paragraph '' StaticText '๐ A webring for digital accessibility practitioners.' [26] link '2', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/starrers' [27] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/forks' [28] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/merge_requests' [29] link '4', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/issues' StaticText 'Updated' time 'Nov 8, 2025 12:16am GMT+0600' StaticText '1 day ago' listitem '' [30] link 'D', url='http://127.0.0.1:8023/primer/design' heading 'Primer / design' [128] link 'Primer / design', url='http://127.0.0.1:8023/primer/design' StaticText 'Developer' paragraph '' StaticText 'Primer Design Guidelines' [31] link '21', url='http://127.0.0.1:8023/primer/design/-/starrers' [32] link '0', url='http://127.0.0.1:8023/primer/design/-/forks' [33] link '16', url='http://127.0.0.1:8023/primer/design/-/merge_requests' [34] link '21', url='http://127.0.0.1:8023/primer/design/-/issues' StaticText 'Updated' time 'Nov 7, 2025 2:47pm GMT+0600' StaticText '1 day ago' listitem '' [35] link 'R', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' heading 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline' [129] link 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' StaticText 'Owner' paragraph '' StaticText "This extension can remove and restore the presence of timeline items generated by a project board event from GitHub's timeline." [36] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/starrers' [37] link '1', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/forks' [38] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/merge_requests' [39] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [40] link 'E', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' heading 'Byte Blaze / ericwbailey.website' [130] link 'Byte Blaze / ericwbailey.website', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' StaticText 'Owner' paragraph '' StaticText '๐ Repo for my personal website.' [41] link '2', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/starrers' [42] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/forks' [43] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/merge_requests' [44] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [45] link 'E', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' heading 'Byte Blaze / empathy-prompts' [131] link 'Byte Blaze / empathy-prompts', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' StaticText 'Owner' paragraph '' StaticText '๐ก Ideas to help consider Inclusive Design principles when making things for others to use.' [46] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/starrers' [47] link '1', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/forks' [48] link '2', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/merge_requests' [49] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/issues' StaticText 'Updated' time 'Nov 7, 2025 5:57pm GMT+0600' StaticText '1 day ago' listitem '' [50] link 'T', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' heading 'Byte Blaze / Title Wanted' [132] link 'Byte Blaze / Title Wanted', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' StaticText 'Owner' paragraph '' StaticText 'I need some space.' [51] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/starrers' [52] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/forks' [53] link '1', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/merge_requests' [54] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/issues' StaticText 'Updated' time 'Nov 8, 2025 9:57am GMT+0600' StaticText '14 hours ago' listitem '' [55] link 'A', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' heading 'Byte Blaze / accessible-html-content-patterns' [133] link 'Byte Blaze / accessible-html-content-patterns', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' StaticText 'Owner' paragraph '' StaticText 'โฟ ๏ธ The full HTML5 Doctor Element Index as well as common markup patterns for quick reference.' [56] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/commit/b0ef90f34aa86371fca1525b64bace8575d48d53/pipelines?ref=main' [57] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/starrers' [58] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/forks' [59] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/merge_requests' [60] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/issues' StaticText 'Updated' time 'Nov 7, 2025 10:49pm GMT+0600' StaticText '1 day ago' listitem '' [61] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' heading 'Byte Blaze / a11y-syntax-highlighting' [134] link 'Byte Blaze / a11y-syntax-highlighting', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' StaticText 'Owner' paragraph '' StaticText '๐ Accessible light and dark syntax highlighting themes' [62] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/commit/ab7d4264d15ceb38403d7b5ec9e348588abfe552/pipelines?ref=main' [63] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/starrers' [64] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/forks' [65] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/merge_requests' [66] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/issues' StaticText 'Updated' time 'Nov 7, 2025 11:26pm GMT+0600' StaticText '1 day ago' listitem '' [67] link 'M', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' heading 'Byte Blaze / millennials-to-snake-people' [135] link 'Byte Blaze / millennials-to-snake-people', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' StaticText 'Owner' paragraph '' StaticText "๐ Chrome extension that replaces occurrences of 'Millennials' with 'Snake People'" [68] link '6', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/starrers' [69] link '0', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/forks' [70] link '2', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/merge_requests' [71] link '4', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [72] link 'S', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' heading 'Byte Blaze / solarized-prism-theme' [136] link 'Byte Blaze / solarized-prism-theme', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' StaticText 'Owner' paragraph '' StaticText 'solarized theme for prism.js' [73] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/starrers' [74] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/forks' [75] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/merge_requests' [76] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/issues' StaticText 'Updated' time 'Apr 25, 2023 3:23am GMT+0600' StaticText '2 years ago' listitem '' [77] link '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' image '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/avatar?width=48' heading 'Byte Blaze / cloud-to-butt' [137] link 'Byte Blaze / cloud-to-butt', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' StaticText 'Owner' paragraph '' StaticText "Chrome extension that replaces occurrences of 'the cloud' with 'my butt'" [78] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/starrers' [79] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/forks' [80] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/merge_requests' [81] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 9:20pm GMT+0600' StaticText '1 day ago' listitem '' [82] link 'T', url='http://127.0.0.1:8023/byteblaze/timeit' heading 'Byte Blaze / timeit' [138] link 'Byte Blaze / timeit', url='http://127.0.0.1:8023/byteblaze/timeit' StaticText 'Owner' paragraph '' StaticText 'Rails implementation of time tracking tool timeit' [83] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/starrers' [84] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/forks' [85] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/merge_requests' [86] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'D', url='http://127.0.0.1:8023/byteblaze/dotfiles' heading 'Byte Blaze / dotfiles' [139] link 'Byte Blaze / dotfiles', url='http://127.0.0.1:8023/byteblaze/dotfiles' StaticText 'Owner' paragraph '' StaticText '๐ค Computer setup' [88] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/starrers' [89] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/forks' [90] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/merge_requests' [91] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/issues' StaticText 'Updated' time 'Nov 8, 2025 10:06pm GMT+0600' StaticText '2 hours ago' listitem '' [92] link '2', url='http://127.0.0.1:8023/byteblaze/2019-nCov' heading 'Byte Blaze / 2019-nCov' [140] link 'Byte Blaze / 2019-nCov', url='http://127.0.0.1:8023/byteblaze/2019-nCov' StaticText 'Owner' paragraph '' StaticText 'Use Google Maps Timeline data to compare with COVID-19 patient history location.' [93] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/starrers' [94] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/forks' [95] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/merge_requests' [96] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/issues' StaticText 'Updated' time 'Nov 7, 2025 6:54pm GMT+0600' StaticText '1 day ago' listitem '' [97] link 'P', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' heading 'Byte Blaze / PyTorch-GAN' [141] link 'Byte Blaze / PyTorch-GAN', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' StaticText 'Owner' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [98] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/starrers' [99] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/forks' [100] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/merge_requests' [101] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [102] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt' heading 'Byte Blaze / Chatgpt' [142] link 'Byte Blaze / Chatgpt', url='http://127.0.0.1:8023/byteblaze/chatgpt' StaticText 'Owner' [103] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/starrers' [104] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/forks' [105] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/merge_requests' [106] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:56pm GMT+0600' StaticText '1 day ago' listitem '' [107] link 'M', url='http://127.0.0.1:8023/byteblaze/metaseq' heading 'Byte Blaze / metaseq' [143] link 'Byte Blaze / metaseq', url='http://127.0.0.1:8023/byteblaze/metaseq' StaticText 'Owner' paragraph '' StaticText 'Repo for external large-scale work' [108] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/starrers' [109] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/forks' [110] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/merge_requests' [111] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/issues' StaticText 'Updated' time 'Nov 7, 2025 8:13pm GMT+0600' StaticText '1 day ago' listitem '' [112] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' heading 'Byte Blaze / chatgpt_plugin' [144] link 'Byte Blaze / chatgpt_plugin', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' StaticText 'Owner' [113] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/starrers' [114] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/forks' [115] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/merge_requests' [116] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:42pm GMT+0600' StaticText '10 hours ago' listitem '' [117] link 'A', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' heading 'Byte Blaze / awesome_llm_reading' [145] link 'Byte Blaze / awesome_llm_reading', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' StaticText 'Owner' [118] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/starrers' [119] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/forks' [120] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/merge_requests' [121] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/issues' StaticText 'Updated' time 'Nov 8, 2025 3:04pm GMT+0600' StaticText '9 hours ago' list '' listitem '' [122] link 'Prev', url='http://127.0.0.1:8023/#' listitem '' [123] link '1', url='http://127.0.0.1:8023/?non_archived=true&sort=stars' listitem '' [124] link '2', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars' listitem '' [125] link 'Next', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars'
The star button is not available in the list view; it appears only on individual project pages. We have verified that the page for `a11yproject/a11yproject.com` already shows an โUnstarโ button (so itโs already starred). We must therefore click the project links in turn and trigger the star button on each project page. Performing these steps sequentially will star the top eight mostโstarred repos as required.
click('30')RootWebArea 'Primer / design ยท GitLab', focused, url='http://127.0.0.1:8023/primer/design'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/primer/design#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[24] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[25] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[26] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[27] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[28] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[29] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[30] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[31] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'design'
[32] link 'design', url='http://127.0.0.1:8023/primer/design'
StaticText 'D'
listitem ''
[33] link 'Project information', url='http://127.0.0.1:8023/primer/design/activity'
listitem ''
[34] link 'Repository', url='http://127.0.0.1:8023/primer/design/-/tree/main'
listitem ''
[35] link 'Issues', url='http://127.0.0.1:8023/primer/design/-/issues'
StaticText '21'
listitem ''
[36] link 'Merge requests', url='http://127.0.0.1:8023/primer/design/-/merge_requests'
StaticText '16'
listitem ''
[37] link 'CI/CD', url='http://127.0.0.1:8023/primer/design/-/pipelines'
listitem ''
[38] link 'Security & Compliance', url='http://127.0.0.1:8023/primer/design/-/security/configuration'
listitem ''
[39] link 'Deployments', url='http://127.0.0.1:8023/primer/design/-/environments'
listitem ''
[40] link 'Packages and registries', url='http://127.0.0.1:8023/primer/design/-/packages'
listitem ''
[41] link 'Infrastructure', url='http://127.0.0.1:8023/primer/design/-/clusters'
listitem ''
[42] link 'Monitor', url='http://127.0.0.1:8023/primer/design/-/metrics'
list ''
listitem ''
[61] link 'Metrics', url='http://127.0.0.1:8023/primer/design/-/metrics'
listitem ''
[62] link 'Error Tracking', url='http://127.0.0.1:8023/primer/design/-/error_tracking'
listitem ''
[63] link 'Alerts', url='http://127.0.0.1:8023/primer/design/-/alert_management'
listitem ''
[64] link 'Incidents', url='http://127.0.0.1:8023/primer/design/-/incidents'
listitem ''
[43] link 'Analytics', url='http://127.0.0.1:8023/primer/design/-/value_stream_analytics'
listitem ''
[44] link 'Wiki', url='http://127.0.0.1:8023/primer/design/-/wikis/home'
listitem ''
[45] link 'Snippets', url='http://127.0.0.1:8023/primer/design/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[20] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[21] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[46] link 'Primer', url='http://127.0.0.1:8023/primer'
listitem ''
[47] link 'design', url='http://127.0.0.1:8023/primer/design'
main ''
StaticText 'D'
heading 'design'
StaticText 'Project ID: 180'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Leave project', url='http://127.0.0.1:8023/primer/design/-/project_members/leave'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Star'
[9] link '21', url='http://127.0.0.1:8023/primer/design/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/primer/design/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/primer/design/-/forks'
navigation ''
list ''
listitem ''
[54] link '921 Commits', url='http://127.0.0.1:8023/primer/design/-/commits/main'
[65] strong ''
StaticText '921'
listitem ''
[55] link '38 Branches', url='http://127.0.0.1:8023/primer/design/-/branches'
[66] strong ''
StaticText '38'
listitem ''
[56] link '0 Tags', url='http://127.0.0.1:8023/primer/design/-/tags'
[67] strong ''
StaticText '0'
listitem ''
[57] strong ''
StaticText '97.8 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Primer Design Guidelines'
image 'user avatar', url='https://www.gravatar.com/avatar/fe7556f5b3c5c16eadfefe9da023c9a6?s=80&d=identicon'
[12] link 'Add interface guidelines for ProgressBar (#452)', url='http://127.0.0.1:8023/primer/design/-/commit/260e840ef9adf72786e54fd6ad36840425b9350c'
[13] button 'Toggle commit description'
StaticText 'Mike Perrotti authored'
time 'Mar 24, 2023 10:33pm GMT+0600'
StaticText '2 years ago'
[14] button 'Unverified'
group ''
StaticText '260e840e'
[22] button 'Copy commit SHA', live='polite', relevant='additions text'
[15] button 'main', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[58] link 'design', url='http://127.0.0.1:8023/primer/design/-/tree/main/'
listitem ''
StaticText '/'
[59] button 'Add to tree', hasPopup='menu', expanded=False
[16] link 'Find file', url='http://127.0.0.1:8023/primer/design/-/find_file/main'
[17] link 'Web IDE', url='http://127.0.0.1:8023/-/ide/project/primer/design/edit/main/-/'
[18] button 'Download'
StaticText 'Select Archive Format'
[19] link 'Clone', url='http://127.0.0.1:8023/primer/design#'
list ''
listitem ''
[48] link 'README', url='http://127.0.0.1:8023/primer/design/-/blob/main/README.md'
listitem ''
[49] link 'MIT License', url='http://127.0.0.1:8023/primer/design/-/blob/main/LICENSE'
listitem ''
[50] link 'CONTRIBUTING', url='http://127.0.0.1:8023/primer/design/-/blob/main/CONTRIBUTING.md'
table 'Files, directories, and submodules in the path / for commit reference main', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github'
[68] link '.github', url='http://127.0.0.1:8023/primer/design/-/tree/main/.github'
cell 'Add more deploy triggers (#406)'
[69] link 'Add more deploy triggers (#406)', url='http://127.0.0.1:8023/primer/design/-/commit/e50ff78b038d5931e72ef44ca2c82f3a61946ec7'
cell '2 years ago'
time 'Feb 23, 2023 11:27pm GMT+0600'
StaticText '2 years ago'
row ''
cell 'content'
[70] link 'content', url='http://127.0.0.1:8023/primer/design/-/tree/main/content'
cell 'Add interface guidelines for ProgressBar (#452)'
[71] link 'Add interface guidelines for ProgressBar (#452)', url='http://127.0.0.1:8023/primer/design/-/commit/260e840ef9adf72786e54fd6ad36840425b9350c'
cell '2 years ago'
time 'Mar 24, 2023 10:33pm GMT+0600'
StaticText '2 years ago'
row ''
cell 'docs'
[72] link 'docs', url='http://127.0.0.1:8023/primer/design/-/tree/main/docs'
cell 'Introduce markdownlinting (#345)'
[73] link 'Introduce markdownlinting (#345)', url='http://127.0.0.1:8023/primer/design/-/commit/14ede848a2f8938b5adefbcfe01ea7d6d378b924'
cell '2 years ago'
time 'Dec 23, 2022 2:13am GMT+0600'
StaticText '2 years ago'
row ''
cell 'src'
[74] link 'src', url='http://127.0.0.1:8023/primer/design/-/tree/main/src'
cell 'Add interface guidelines for ProgressBar (#452)'
[75] link 'Add interface guidelines for ProgressBar (#452)', url='http://127.0.0.1:8023/primer/design/-/commit/260e840ef9adf72786e54fd6ad36840425b9350c'
cell '2 years ago'
time 'Mar 24, 2023 10:33pm GMT+0600'
StaticText '2 years ago'
row ''
cell '.eslintignore'
[76] link '.eslintignore', url='http://127.0.0.1:8023/primer/design/-/blob/main/.eslintignore'
cell 'add deployment workflows for GitHub Pages (#258)'
[77] link 'add deployment workflows for GitHub Pages (#258)', url='http://127.0.0.1:8023/primer/design/-/commit/f6a6e518412c11cc4889547d918a83c9f26a520f'
cell '3 years ago'
time 'Apr 14, 2022 2:52pm GMT+0600'
StaticText '3 years ago'
row ''
cell '.eslintrc.json'
[78] link '.eslintrc.json', url='http://127.0.0.1:8023/primer/design/-/blob/main/.eslintrc.json'
cell 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)'
[79] link 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)', url='http://127.0.0.1:8023/primer/design/-/commit/d52cbf18d0ce74bb81de57655865981f9708284d'
cell '3 years ago'
time 'Aug 16, 2022 7:48pm GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[80] link '.gitignore', url='http://127.0.0.1:8023/primer/design/-/blob/main/.gitignore'
cell 'started work on icons section (#387)'
[81] link 'started work on icons section (#387)', url='http://127.0.0.1:8023/primer/design/-/commit/540044cbbdf360a73e6762d5f8895212d1776f77'
cell '2 years ago'
time 'Feb 8, 2023 10:04pm GMT+0600'
StaticText '2 years ago'
row ''
cell '.markdownlint-cli2.cjs'
[82] link '.markdownlint-cli2.cjs', url='http://127.0.0.1:8023/primer/design/-/blob/main/.markdownlint-cli2.cjs'
cell 'Create MVP React component layout (#366)'
[83] link 'Create MVP React component layout (#366)', url='http://127.0.0.1:8023/primer/design/-/commit/f78a870884b55e3509307b68f24d4f3151734e8f'
cell '2 years ago'
time 'Jan 30, 2023 10:50am GMT+0600'
StaticText '2 years ago'
row ''
cell '.nvmrc'
[84] link '.nvmrc', url='http://127.0.0.1:8023/primer/design/-/blob/main/.nvmrc'
cell 'New icons guidelines (#346)'
[85] link 'New icons guidelines (#346)', url='http://127.0.0.1:8023/primer/design/-/commit/3ca360d02fb24a49a89365715379f8d611e85f82'
cell '2 years ago'
time 'Jan 5, 2023 3:58pm GMT+0600'
StaticText '2 years ago'
row ''
cell 'CODE_OF_CONDUCT.md'
[86] link 'CODE_OF_CONDUCT.md', url='http://127.0.0.1:8023/primer/design/-/blob/main/CODE_OF_CONDUCT.md'
cell 'add Code of Conduct'
[87] link 'add Code of Conduct', url='http://127.0.0.1:8023/primer/design/-/commit/eb2f473d2c95247705a1162435a7b111a03ad167'
cell '6 years ago'
time 'May 30, 2019 2:40am GMT+0600'
StaticText '6 years ago'
row ''
cell 'CONTRIBUTING.md'
[88] link 'CONTRIBUTING.md', url='http://127.0.0.1:8023/primer/design/-/blob/main/CONTRIBUTING.md'
cell 'Create CONTRIBUTING.md (#180)'
[89] link 'Create CONTRIBUTING.md (#180)', url='http://127.0.0.1:8023/primer/design/-/commit/e0f8ddd897a8a128a8888b803552c277c94cdd26'
cell '4 years ago'
time 'Sep 10, 2021 8:01pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'LICENSE'
[90] link 'LICENSE', url='http://127.0.0.1:8023/primer/design/-/blob/main/LICENSE'
cell 'Add license'
[91] link 'Add license', url='http://127.0.0.1:8023/primer/design/-/commit/79fe17d46ebb1cb0f70b1d81c82e7b743cece14c'
cell '5 years ago'
time 'Apr 17, 2020 6:06pm GMT+0600'
StaticText '5 years ago'
row ''
cell 'README.md'
[92] link 'README.md', url='http://127.0.0.1:8023/primer/design/-/blob/main/README.md'
cell 'Copy content from primer.style/cli โ primer.style/design (#376)'
[93] link 'Copy content from primer.style/cli โ primer.style/design (#376)', url='http://127.0.0.1:8023/primer/design/-/commit/b201d994306a77e78fdfc7255f962fdb82897b2a'
cell '2 years ago'
time 'Jan 31, 2023 4:46pm GMT+0600'
StaticText '2 years ago'
row ''
cell 'babel-defines.js'
[94] link 'babel-defines.js', url='http://127.0.0.1:8023/primer/design/-/blob/main/babel-defines.js'
cell 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)'
[95] link 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)', url='http://127.0.0.1:8023/primer/design/-/commit/d52cbf18d0ce74bb81de57655865981f9708284d'
cell '3 years ago'
time 'Aug 16, 2022 7:48pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'gatsby-config.js'
[96] link 'gatsby-config.js', url='http://127.0.0.1:8023/primer/design/-/blob/main/gatsby-config.js'
cell 'Docs: Move `about` page content (#386)'
[97] link 'Docs: Move `about` page content (#386)', url='http://127.0.0.1:8023/primer/design/-/commit/dd947ab014c8595cd6c9f163e9192214fd0c4d16'
cell '2 years ago'
time 'Feb 9, 2023 7:36am GMT+0600'
StaticText '2 years ago'
row ''
cell 'gatsby-node.js'
[98] link 'gatsby-node.js', url='http://127.0.0.1:8023/primer/design/-/blob/main/gatsby-node.js'
cell 'Output a JSON file with component metadata (#425)'
[99] link 'Output a JSON file with component metadata (#425)', url='http://127.0.0.1:8023/primer/design/-/commit/aef1ec1eb0822667eab71d38d992b1b5dae5bac6'
cell '2 years ago'
time 'Mar 11, 2023 12:15am GMT+0600'
StaticText '2 years ago'
row ''
cell 'package-lock.json'
[100] link 'package-lock.json', url='http://127.0.0.1:8023/primer/design/-/blob/main/package-lock.json'
cell 'Update ActionMenu docs (#445)'
[101] link 'Update ActionMenu docs (#445)', url='http://127.0.0.1:8023/primer/design/-/commit/32416b59eb0117ecee7a8a38ce46fe040b15b5bf'
cell '2 years ago'
time 'Mar 22, 2023 1:07am GMT+0600'
StaticText '2 years ago'
row ''
cell 'package.json'
[102] link 'package.json', url='http://127.0.0.1:8023/primer/design/-/blob/main/package.json'
cell 'Upgrade doctocat version (#434)'
[103] link 'Upgrade doctocat version (#434)', url='http://127.0.0.1:8023/primer/design/-/commit/705140dde3ca1ee58c0f1d74e36b19c2d79badc8'
cell '2 years ago'
time 'Mar 15, 2023 11:16am GMT+0600'
StaticText '2 years ago'
row ''
cell 'prettier.config.js'
[104] link 'prettier.config.js', url='http://127.0.0.1:8023/primer/design/-/blob/main/prettier.config.js'
SvgRoot ''
group 'prettier-icon-dark'
cell 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)'
[105] link 'Bump @primer/gatsby-theme-doctocat from 3.1.1 to 4.0.0 (#278)', url='http://127.0.0.1:8023/primer/design/-/commit/d52cbf18d0ce74bb81de57655865981f9708284d'
cell '3 years ago'
time 'Aug 16, 2022 7:48pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'yarn.lock'
[106] link 'yarn.lock', url='http://127.0.0.1:8023/primer/design/-/blob/main/yarn.lock'
cell 'Coverage improvements (#449)'
[107] link 'Coverage improvements (#449)', url='http://127.0.0.1:8023/primer/design/-/commit/d583ce8cfe3da8d460ae382ad47c815e25492be6'
cell '2 years ago'
time 'Mar 24, 2023 5:58am GMT+0600'
StaticText '2 years ago'
article ''
[23] link 'README.md', url='http://127.0.0.1:8023/primer/design/-/blob/main/README.md'
[51] strong ''
StaticText 'README.md'
heading 'Primer Interface Guidelines'
paragraph ''
StaticText 'Documentation for UI patterns and interaction guidelines.'
heading 'Status'
paragraph ''
StaticText 'This is currently a work in progress! Follow along on our'
[52] link 'project board', url='https://github.com/primer/design/projects/1'
StaticText '.'
heading 'Local development'
list ''
listitem ''
ListMarker '0.'
paragraph ''
StaticText 'Clone this repo, e.g. with:'
code ''
StaticText 'git clone https://github.com/primer/design'
[60] button ''
listitem ''
ListMarker '0.'
paragraph ''
StaticText 'In the terminal, navigate ('
code ''
StaticText 'cd'
StaticText ') to the repo directory'
listitem ''
ListMarker '0.'
paragraph ''
code ''
StaticText 'nvm use --default'
StaticText 'to use the correct node version.'
listitem ''
ListMarker '0.'
paragraph ''
code ''
StaticText 'yarn'
StaticText 'to install dependencies'
listitem ''
ListMarker '0.'
paragraph ''
code ''
StaticText 'yarn start'
StaticText 'to start the dev server'
heading 'Deployment'
paragraph ''
StaticText 'We deploy this site using'
[53] link 'GitHub Pages', url='https://pages.github.com/'
StaticText '. Every push to a branch other than'
code ''
StaticText 'main'
StaticText 'will deploy to a URL unique to the preview environment. Merges to'
code ''
StaticText 'main'
StaticText 'will automatically deploy the site to'
code ''
StaticText 'https://primer.github.io/design/'
StaticText '.'
Jump Action
[B]goto('http://127.0.0.1:8023/')RootWebArea 'Projects ยท Dashboard ยท GitLab', focused, url='http://127.0.0.1:8023/' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [6] button '', hasPopup='menu', expanded=False list '' listitem '' [7] textbox 'Search GitLab' StaticText '/' list '' listitem '' [8] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [9] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [10] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [11] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [12] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [13] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [14] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [15] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [16] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [17] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [18] link 'All', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [19] link 'Personal', url='http://127.0.0.1:8023/?personal=true&sort=stars' list '' listitem '' [20] link 'A', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' heading 'The A11Y Project / a11yproject.com' [126] link 'The A11Y Project / a11yproject.com', url='http://127.0.0.1:8023/a11yproject/a11yproject.com' StaticText 'Maintainer' paragraph '' StaticText 'The A11Y Project is a community-driven effort to make digital accessibility easier.' [21] link '21', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/starrers' [22] link '0', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/forks' [23] link '9', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/merge_requests' [24] link '40', url='http://127.0.0.1:8023/a11yproject/a11yproject.com/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:36am GMT+0600' StaticText '22 hours ago' listitem '' [25] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' heading 'Byte Blaze / a11y-webring.club' [127] link 'Byte Blaze / a11y-webring.club', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club' StaticText 'Owner' paragraph '' StaticText '๐ A webring for digital accessibility practitioners.' [26] link '2', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/starrers' [27] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/forks' [28] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/merge_requests' [29] link '4', url='http://127.0.0.1:8023/byteblaze/a11y-webring.club/-/issues' StaticText 'Updated' time 'Nov 8, 2025 12:16am GMT+0600' StaticText '1 day ago' listitem '' [30] link 'D', url='http://127.0.0.1:8023/primer/design' heading 'Primer / design' [128] link 'Primer / design', url='http://127.0.0.1:8023/primer/design' StaticText 'Developer' paragraph '' StaticText 'Primer Design Guidelines' [31] link '21', url='http://127.0.0.1:8023/primer/design/-/starrers' [32] link '0', url='http://127.0.0.1:8023/primer/design/-/forks' [33] link '16', url='http://127.0.0.1:8023/primer/design/-/merge_requests' [34] link '21', url='http://127.0.0.1:8023/primer/design/-/issues' StaticText 'Updated' time 'Nov 7, 2025 2:47pm GMT+0600' StaticText '1 day ago' listitem '' [35] link 'R', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' heading 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline' [129] link 'Byte Blaze / remove-board-movement-events-from-the-github-issue-timeline', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline' StaticText 'Owner' paragraph '' StaticText "This extension can remove and restore the presence of timeline items generated by a project board event from GitHub's timeline." [36] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/starrers' [37] link '1', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/forks' [38] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/merge_requests' [39] link '0', url='http://127.0.0.1:8023/byteblaze/remove-board-movement-events-from-the-github-issue-timeline/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [40] link 'E', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' heading 'Byte Blaze / ericwbailey.website' [130] link 'Byte Blaze / ericwbailey.website', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website' StaticText 'Owner' paragraph '' StaticText '๐ Repo for my personal website.' [41] link '2', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/starrers' [42] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/forks' [43] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/merge_requests' [44] link '0', url='http://127.0.0.1:8023/byteblaze/ericwbailey.website/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [45] link 'E', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' heading 'Byte Blaze / empathy-prompts' [131] link 'Byte Blaze / empathy-prompts', url='http://127.0.0.1:8023/byteblaze/empathy-prompts' StaticText 'Owner' paragraph '' StaticText '๐ก Ideas to help consider Inclusive Design principles when making things for others to use.' [46] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/starrers' [47] link '1', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/forks' [48] link '2', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/merge_requests' [49] link '6', url='http://127.0.0.1:8023/byteblaze/empathy-prompts/-/issues' StaticText 'Updated' time 'Nov 7, 2025 5:57pm GMT+0600' StaticText '1 day ago' listitem '' [50] link 'T', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' heading 'Byte Blaze / Title Wanted' [132] link 'Byte Blaze / Title Wanted', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space' StaticText 'Owner' paragraph '' StaticText 'I need some space.' [51] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/starrers' [52] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/forks' [53] link '1', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/merge_requests' [54] link '0', url='http://127.0.0.1:8023/byteblaze/gimmiethat.space/-/issues' StaticText 'Updated' time 'Nov 8, 2025 9:57am GMT+0600' StaticText '14 hours ago' listitem '' [55] link 'A', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' heading 'Byte Blaze / accessible-html-content-patterns' [133] link 'Byte Blaze / accessible-html-content-patterns', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns' StaticText 'Owner' paragraph '' StaticText 'โฟ ๏ธ The full HTML5 Doctor Element Index as well as common markup patterns for quick reference.' [56] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/commit/b0ef90f34aa86371fca1525b64bace8575d48d53/pipelines?ref=main' [57] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/starrers' [58] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/forks' [59] link '1', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/merge_requests' [60] link '0', url='http://127.0.0.1:8023/byteblaze/accessible-html-content-patterns/-/issues' StaticText 'Updated' time 'Nov 7, 2025 10:49pm GMT+0600' StaticText '1 day ago' listitem '' [61] link 'A', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' heading 'Byte Blaze / a11y-syntax-highlighting' [134] link 'Byte Blaze / a11y-syntax-highlighting', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting' StaticText 'Owner' paragraph '' StaticText '๐ Accessible light and dark syntax highlighting themes' [62] link 'Pipeline: failed', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/commit/ab7d4264d15ceb38403d7b5ec9e348588abfe552/pipelines?ref=main' [63] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/starrers' [64] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/forks' [65] link '0', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/merge_requests' [66] link '1', url='http://127.0.0.1:8023/byteblaze/a11y-syntax-highlighting/-/issues' StaticText 'Updated' time 'Nov 7, 2025 11:26pm GMT+0600' StaticText '1 day ago' listitem '' [67] link 'M', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' heading 'Byte Blaze / millennials-to-snake-people' [135] link 'Byte Blaze / millennials-to-snake-people', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people' StaticText 'Owner' paragraph '' StaticText "๐ Chrome extension that replaces occurrences of 'Millennials' with 'Snake People'" [68] link '6', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/starrers' [69] link '0', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/forks' [70] link '2', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/merge_requests' [71] link '4', url='http://127.0.0.1:8023/byteblaze/millennials-to-snake-people/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [72] link 'S', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' heading 'Byte Blaze / solarized-prism-theme' [136] link 'Byte Blaze / solarized-prism-theme', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme' StaticText 'Owner' paragraph '' StaticText 'solarized theme for prism.js' [73] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/starrers' [74] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/forks' [75] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/merge_requests' [76] link '0', url='http://127.0.0.1:8023/byteblaze/solarized-prism-theme/-/issues' StaticText 'Updated' time 'Apr 25, 2023 3:23am GMT+0600' StaticText '2 years ago' listitem '' [77] link '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' image '', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/avatar?width=48' heading 'Byte Blaze / cloud-to-butt' [137] link 'Byte Blaze / cloud-to-butt', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt' StaticText 'Owner' paragraph '' StaticText "Chrome extension that replaces occurrences of 'the cloud' with 'my butt'" [78] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/starrers' [79] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/forks' [80] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/merge_requests' [81] link '0', url='http://127.0.0.1:8023/byteblaze/cloud-to-butt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 9:20pm GMT+0600' StaticText '1 day ago' listitem '' [82] link 'T', url='http://127.0.0.1:8023/byteblaze/timeit' heading 'Byte Blaze / timeit' [138] link 'Byte Blaze / timeit', url='http://127.0.0.1:8023/byteblaze/timeit' StaticText 'Owner' paragraph '' StaticText 'Rails implementation of time tracking tool timeit' [83] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/starrers' [84] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/forks' [85] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/merge_requests' [86] link '0', url='http://127.0.0.1:8023/byteblaze/timeit/-/issues' StaticText 'Updated' time 'Mar 28, 2023 5:22am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'D', url='http://127.0.0.1:8023/byteblaze/dotfiles' heading 'Byte Blaze / dotfiles' [139] link 'Byte Blaze / dotfiles', url='http://127.0.0.1:8023/byteblaze/dotfiles' StaticText 'Owner' paragraph '' StaticText '๐ค Computer setup' [88] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/starrers' [89] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/forks' [90] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/merge_requests' [91] link '0', url='http://127.0.0.1:8023/byteblaze/dotfiles/-/issues' StaticText 'Updated' time 'Nov 8, 2025 10:06pm GMT+0600' StaticText '2 hours ago' listitem '' [92] link '2', url='http://127.0.0.1:8023/byteblaze/2019-nCov' heading 'Byte Blaze / 2019-nCov' [140] link 'Byte Blaze / 2019-nCov', url='http://127.0.0.1:8023/byteblaze/2019-nCov' StaticText 'Owner' paragraph '' StaticText 'Use Google Maps Timeline data to compare with COVID-19 patient history location.' [93] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/starrers' [94] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/forks' [95] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/merge_requests' [96] link '0', url='http://127.0.0.1:8023/byteblaze/2019-nCov/-/issues' StaticText 'Updated' time 'Nov 7, 2025 6:54pm GMT+0600' StaticText '1 day ago' listitem '' [97] link 'P', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' heading 'Byte Blaze / PyTorch-GAN' [141] link 'Byte Blaze / PyTorch-GAN', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN' StaticText 'Owner' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [98] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/starrers' [99] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/forks' [100] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/merge_requests' [101] link '0', url='http://127.0.0.1:8023/byteblaze/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [102] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt' heading 'Byte Blaze / Chatgpt' [142] link 'Byte Blaze / Chatgpt', url='http://127.0.0.1:8023/byteblaze/chatgpt' StaticText 'Owner' [103] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/starrers' [104] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/forks' [105] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/merge_requests' [106] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:56pm GMT+0600' StaticText '1 day ago' listitem '' [107] link 'M', url='http://127.0.0.1:8023/byteblaze/metaseq' heading 'Byte Blaze / metaseq' [143] link 'Byte Blaze / metaseq', url='http://127.0.0.1:8023/byteblaze/metaseq' StaticText 'Owner' paragraph '' StaticText 'Repo for external large-scale work' [108] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/starrers' [109] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/forks' [110] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/merge_requests' [111] link '0', url='http://127.0.0.1:8023/byteblaze/metaseq/-/issues' StaticText 'Updated' time 'Nov 7, 2025 8:13pm GMT+0600' StaticText '1 day ago' listitem '' [112] link 'C', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' heading 'Byte Blaze / chatgpt_plugin' [144] link 'Byte Blaze / chatgpt_plugin', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin' StaticText 'Owner' [113] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/starrers' [114] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/forks' [115] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/merge_requests' [116] link '0', url='http://127.0.0.1:8023/byteblaze/chatgpt_plugin/-/issues' StaticText 'Updated' time 'Nov 8, 2025 2:42pm GMT+0600' StaticText '10 hours ago' listitem '' [117] link 'A', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' heading 'Byte Blaze / awesome_llm_reading' [145] link 'Byte Blaze / awesome_llm_reading', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading' StaticText 'Owner' [118] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/starrers' [119] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/forks' [120] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/merge_requests' [121] link '0', url='http://127.0.0.1:8023/byteblaze/awesome_llm_reading/-/issues' StaticText 'Updated' time 'Nov 8, 2025 3:04pm GMT+0600' StaticText '9 hours ago' list '' listitem '' [122] link 'Prev', url='http://127.0.0.1:8023/#' listitem '' [123] link '1', url='http://127.0.0.1:8023/?non_archived=true&sort=stars' listitem '' [124] link '2', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars' listitem '' [125] link 'Next', url='http://127.0.0.1:8023/?non_archived=true&page=2&sort=stars'
The dashboard is likely showing the user's own projects sorted by stars, which may not reach the global top eight most starred repos. The Explore page provides a global view of public projects sorted by star count, ensuring we star globally popular repositories.
click('16')RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/bblanchon/ArduinoJson' heading 'Benoรฎt Blanchon / ArduinoJson' [123] link 'Benoรฎt Blanchon / ArduinoJson', url='http://127.0.0.1:8023/bblanchon/ArduinoJson' paragraph '' StaticText '๐ JSON library for Arduino and embedded C++. Simple and efficient.' [23] link '22', url='http://127.0.0.1:8023/bblanchon/ArduinoJson/-/starrers' [24] link '0', url='http://127.0.0.1:8023/bblanchon/ArduinoJson/-/forks' [25] link '0', url='http://127.0.0.1:8023/bblanchon/ArduinoJson/-/merge_requests' [26] link '24', url='http://127.0.0.1:8023/bblanchon/ArduinoJson/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [27] link 'A', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector' heading 'CellularPrivacy / Android-IMSI-Catcher-Detector' [124] link 'CellularPrivacy / Android-IMSI-Catcher-Detector', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector' paragraph '' StaticText 'AIMSICD โข Fight IMSI-Catcher, StingRay and silent SMS!' [28] link '28', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector/-/starrers' [29] link '0', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector/-/forks' [30] link '5', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector/-/merge_requests' [31] link '162', url='http://127.0.0.1:8023/CellularPrivacy/Android-IMSI-Catcher-Detector/-/issues' StaticText 'Updated' time 'Mar 20, 2023 8:53am GMT+0600' StaticText '2 years ago' listitem '' [32] link 'D', url='http://127.0.0.1:8023/robert1003/dotfiles' heading 'robert1003 / dotfiles' [125] link 'robert1003 / dotfiles', url='http://127.0.0.1:8023/robert1003/dotfiles' [33] link '0', url='http://127.0.0.1:8023/robert1003/dotfiles/-/starrers' [34] link '0', url='http://127.0.0.1:8023/robert1003/dotfiles/-/forks' [35] link '0', url='http://127.0.0.1:8023/robert1003/dotfiles/-/merge_requests' [36] link '1', url='http://127.0.0.1:8023/robert1003/dotfiles/-/issues' StaticText 'Updated' time 'Feb 17, 2023 9:29pm GMT+0600' StaticText '2 years ago' listitem '' [37] link 'T', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1' heading 'Abishek S / test-repo-1' [126] link 'Abishek S / test-repo-1', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1' [38] link '0', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1/-/starrers' [39] link '0', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1/-/forks' [40] link '0', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1/-/merge_requests' [41] link '0', url='http://127.0.0.1:8023/abisubramanya27/test-repo-1/-/issues' StaticText 'Updated' time 'Mar 22, 2023 1:10am GMT+0600' StaticText '2 years ago' listitem '' [42] link 'C', url='http://127.0.0.1:8023/schmatz/cs-interview-guide' heading 'Michael Schmatz / cs-interview-guide' [127] link 'Michael Schmatz / cs-interview-guide', url='http://127.0.0.1:8023/schmatz/cs-interview-guide' paragraph '' StaticText 'A short guide on preparing for computer science interviews' [43] link '0', url='http://127.0.0.1:8023/schmatz/cs-interview-guide/-/starrers' [44] link '0', url='http://127.0.0.1:8023/schmatz/cs-interview-guide/-/forks' [45] link '0', url='http://127.0.0.1:8023/schmatz/cs-interview-guide/-/merge_requests' [46] link '0', url='http://127.0.0.1:8023/schmatz/cs-interview-guide/-/issues' StaticText 'Updated' time 'Mar 20, 2023 12:45am GMT+0600' StaticText '2 years ago' listitem '' [47] link 'B', url='http://127.0.0.1:8023/twbs/bootstrap' heading 'Bootstrap / bootstrap' [128] link 'Bootstrap / bootstrap', url='http://127.0.0.1:8023/twbs/bootstrap' paragraph '' StaticText 'The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.' [48] link '29', url='http://127.0.0.1:8023/twbs/bootstrap/-/starrers' [49] link '0', url='http://127.0.0.1:8023/twbs/bootstrap/-/forks' [50] link '114', url='http://127.0.0.1:8023/twbs/bootstrap/-/merge_requests' [51] link '263', url='http://127.0.0.1:8023/twbs/bootstrap/-/issues' StaticText 'Updated' time 'Mar 21, 2023 10:23pm GMT+0600' StaticText '2 years ago' listitem '' [52] link 'S', url='http://127.0.0.1:8023/root/sample-gitlab' heading 'Administrator / sample-gitlab' [129] link 'Administrator / sample-gitlab', url='http://127.0.0.1:8023/root/sample-gitlab' [53] link '0', url='http://127.0.0.1:8023/root/sample-gitlab/-/starrers' [54] link '0', url='http://127.0.0.1:8023/root/sample-gitlab/-/forks' [55] link '29', url='http://127.0.0.1:8023/root/sample-gitlab/-/merge_requests' [56] link '29', url='http://127.0.0.1:8023/root/sample-gitlab/-/issues' StaticText 'Updated' time 'Feb 1, 2023 9:54am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'S', url='http://127.0.0.1:8023/convexegg/super_awesome_robot' heading 'Convex Eggtart / Super_Awesome_Robot' [130] link 'Convex Eggtart / Super_Awesome_Robot', url='http://127.0.0.1:8023/convexegg/super_awesome_robot' [58] link '0', url='http://127.0.0.1:8023/convexegg/super_awesome_robot/-/starrers' [59] link '0', url='http://127.0.0.1:8023/convexegg/super_awesome_robot/-/forks' [60] link '0', url='http://127.0.0.1:8023/convexegg/super_awesome_robot/-/merge_requests' [61] link '0', url='http://127.0.0.1:8023/convexegg/super_awesome_robot/-/issues' StaticText 'Updated' time 'Mar 2, 2023 9:49pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'C', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3' heading 'Abishek S / CS6910_Assignment3' [131] link 'Abishek S / CS6910_Assignment3', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3' [63] link '0', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3/-/starrers' [64] link '0', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3/-/forks' [65] link '0', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3/-/merge_requests' [66] link '0', url='http://127.0.0.1:8023/abisubramanya27/CS6910_Assignment3/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:09am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'C', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test' heading 'Abishek S / Coursera-test' [132] link 'Abishek S / Coursera-test', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test' [68] link '0', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test/-/starrers' [69] link '0', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test/-/forks' [70] link '0', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test/-/merge_requests' [71] link '0', url='http://127.0.0.1:8023/abisubramanya27/Coursera-test/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:09am GMT+0600' StaticText '2 years ago' listitem '' [72] link 'D', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier' heading 'Abishek S / DBS-Complaints-Classifier' [133] link 'Abishek S / DBS-Complaints-Classifier', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier' [73] link '0', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier/-/starrers' [74] link '0', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier/-/forks' [75] link '0', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier/-/merge_requests' [76] link '0', url='http://127.0.0.1:8023/abisubramanya27/DBS-Complaints-Classifier/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:09am GMT+0600' StaticText '2 years ago' listitem '' [77] link 'D', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application' heading 'Abishek S / Dictionary-Application' [134] link 'Abishek S / Dictionary-Application', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application' [78] link '0', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application/-/starrers' [79] link '0', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application/-/forks' [80] link '0', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application/-/merge_requests' [81] link '0', url='http://127.0.0.1:8023/abisubramanya27/Dictionary-Application/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:09am GMT+0600' StaticText '2 years ago' listitem '' [82] link 'E', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn' heading 'Abishek S / EE2003_Assgn' [135] link 'Abishek S / EE2003_Assgn', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn' [83] link '0', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn/-/starrers' [84] link '0', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn/-/forks' [85] link '0', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn/-/merge_requests' [86] link '0', url='http://127.0.0.1:8023/abisubramanya27/EE2003_Assgn/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:10am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'C', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4' heading 'Abishek S / coursera-prog-ex-4' [136] link 'Abishek S / coursera-prog-ex-4', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4' [88] link '0', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4/-/starrers' [89] link '0', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4/-/forks' [90] link '0', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4/-/merge_requests' [91] link '0', url='http://127.0.0.1:8023/abisubramanya27/coursera-prog-ex-4/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:09am GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER' heading 'Abishek S / E-CONTEST-SHAASTRA20-SERVER' [137] link 'Abishek S / E-CONTEST-SHAASTRA20-SERVER', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER' [93] link '0', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER/-/starrers' [94] link '0', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER/-/forks' [95] link '0', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER/-/merge_requests' [96] link '0', url='http://127.0.0.1:8023/abisubramanya27/E-CONTEST-SHAASTRA20-SERVER/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:10am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'A', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27' heading 'Abishek S / abisubramanya27' [138] link 'Abishek S / abisubramanya27', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27' [98] link '0', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27/-/starrers' [99] link '0', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27/-/forks' [100] link '0', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27/-/merge_requests' [101] link '0', url='http://127.0.0.1:8023/abisubramanya27/abisubramanya27/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:08am GMT+0600' StaticText '2 years ago' listitem '' [102] link 'A', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab' heading 'Abishek S / AppliedProgrammingLab' [139] link 'Abishek S / AppliedProgrammingLab', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab' [103] link '0', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab/-/starrers' [104] link '0', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab/-/forks' [105] link '0', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab/-/merge_requests' [106] link '0', url='http://127.0.0.1:8023/abisubramanya27/AppliedProgrammingLab/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:08am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'B', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter' heading 'Abishek S / BracketsInterpreter' [140] link 'Abishek S / BracketsInterpreter', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter' [108] link '0', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter/-/starrers' [109] link '0', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter/-/forks' [110] link '0', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter/-/merge_requests' [111] link '0', url='http://127.0.0.1:8023/abisubramanya27/BracketsInterpreter/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:08am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'B', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game' heading 'Abishek S / BrickBreaker-Game' [141] link 'Abishek S / BrickBreaker-Game', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game' [113] link '0', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game/-/starrers' [114] link '0', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game/-/forks' [115] link '0', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game/-/merge_requests' [116] link '0', url='http://127.0.0.1:8023/abisubramanya27/BrickBreaker-Game/-/issues' StaticText 'Updated' time 'Feb 3, 2023 6:08am GMT+0600' StaticText '2 years ago' listitem '' [117] link 'G', url='http://127.0.0.1:8023/jodoglevy/gargl' heading 'Joe Levy / gargl' [142] link 'Joe Levy / gargl', url='http://127.0.0.1:8023/jodoglevy/gargl' paragraph '' StaticText 'Record web requests as they happen and turn them into reusable code in any programming language.' [118] link '5', url='http://127.0.0.1:8023/jodoglevy/gargl/-/starrers' [119] link '0', url='http://127.0.0.1:8023/jodoglevy/gargl/-/forks' [120] link '1', url='http://127.0.0.1:8023/jodoglevy/gargl/-/merge_requests' [121] link '6', url='http://127.0.0.1:8023/jodoglevy/gargl/-/issues' StaticText 'Updated' time 'Mar 20, 2023 12:58am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects?non_archived=true&page=2&sort=stars'
Clicking โMost starsโ should reorder the list to display projects with the highest star counts first, revealing the top repositories we need to star. The current list does not show the global top eight, so we must navigate to the page sorted by stars before attempting to star the projects.
click('20')RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
The goal is to star each of the top eight repositories. Typically the star action is performed via a button or link on the project page or within the project list. Since no explicit star button exists in the current tree, the most reliable method is to: 1. Open each projectโs page. 2. Locate and click the star toggle (whose ID is not visible in the current tree, but can be found by inspecting the page after navigation). Because star buttons may be dynamically rendered, we need to navigate to each project first, then perform the star action.
click('123')RootWebArea 'Umano: News Read To You / AndroidSlidingUpPanel ยท GitLab', focused, url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[26] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[27] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[28] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[29] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[30] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[31] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[32] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[33] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'AndroidSlidingUpPanel'
[34] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
listitem ''
[35] link 'Project information', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/activity'
listitem ''
[36] link 'Repository', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master'
listitem ''
[37] link 'Issues', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues'
StaticText '267'
listitem ''
[38] link 'Merge requests', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests'
StaticText '34'
listitem ''
[39] link 'CI/CD', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipelines'
list ''
listitem ''
[75] link 'Pipelines', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipelines'
listitem ''
[76] link 'Jobs', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/jobs'
listitem ''
[77] link 'Schedules', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipeline_schedules'
listitem ''
[40] link 'Deployments', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/environments'
listitem ''
[41] link 'Packages and registries', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/packages'
listitem ''
[42] link 'Monitor', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/incidents'
listitem ''
[43] link 'Analytics', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/value_stream_analytics'
listitem ''
[44] link 'Wiki', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/wikis/home'
listitem ''
[45] link 'Snippets', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[18] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[19] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[46] link 'Umano: News Read To You', url='http://127.0.0.1:8023/umano'
listitem ''
[47] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
main ''
StaticText 'A'
heading 'AndroidSlidingUpPanel'
StaticText 'Project ID: 152'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Star'
[9] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks'
navigation ''
list ''
listitem ''
[57] link '361 Commits', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commits/master'
[78] strong ''
StaticText '361'
listitem ''
[58] link '35 Branches', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/branches'
[79] strong ''
StaticText '35'
listitem ''
[59] link '8 Tags', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tags'
[80] strong ''
StaticText '8'
listitem ''
[60] strong ''
StaticText '10.9 MB'
StaticText 'Project Storage'
listitem ''
[61] link '8 Releases', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/releases'
[81] strong ''
StaticText '8'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.'
image 'user avatar', url='https://www.gravatar.com/avatar/7bd4d29b1cf01ade7f09fbcff24f7b8c?s=80&d=identicon'
[12] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
StaticText 'tokudu authored'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
group ''
StaticText '45a46043'
[20] button 'Copy commit SHA', live='polite', relevant='additions text'
[13] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[62] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/'
listitem ''
StaticText '/'
[63] button 'Add to tree', hasPopup='menu', expanded=False
[14] link 'Find file', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/find_file/master'
[15] link 'Web IDE', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#modal-confirm-fork-webide'
[16] button 'Download'
StaticText 'Select Archive Format'
[17] link 'Clone', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#'
list ''
listitem ''
[48] link 'README', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
listitem ''
[49] link 'Apache License 2.0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell 'demo'
[82] link 'demo', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/demo'
cell 'Update the library'
[83] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle/wrapper'
[84] link 'gradle/wrapper', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/gradle'
cell 'Update gradle-wrapper.properties'
[85] link 'Update gradle-wrapper.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/b95f31dcee9cbd8ef59e1eb10224b8da5c47ff67'
cell '8 years ago'
time 'Jun 20, 2017 9:35am GMT+0600'
StaticText '8 years ago'
row ''
cell 'library'
[86] link 'library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/library'
cell 'Update the library'
[87] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell '.gitignore'
[88] link '.gitignore', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.gitignore'
cell 'Updated the gradle wrapper and prepared everything for maven central sync'
[89] link 'Updated the gradle wrapper and prepared everything for maven central sync', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3353430aac3b944468eeef869c29689308202039'
cell '11 years ago'
time 'May 14, 2014 10:08pm GMT+0600'
StaticText '11 years ago'
row ''
cell '.travis.yml'
[90] link '.travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.travis.yml'
cell 'Update .travis.yml'
[91] link 'Update .travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/96677b69d3531bbbee72724681967040a70c2c44'
cell '8 years ago'
time 'Jun 20, 2017 9:37am GMT+0600'
StaticText '8 years ago'
row ''
cell 'LICENSE.txt'
[92] link 'LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
cell 'Update LICENSE.txt'
[93] link 'Update LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/58b292f52348027b4cbdd3d405446fdba1e88152'
cell '9 years ago'
time 'Nov 18, 2015 3:19pm GMT+0600'
StaticText '9 years ago'
row ''
cell 'README.md'
[94] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
cell 'Update the library'
[95] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'build.gradle'
[96] link 'build.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/build.gradle'
cell 'Upgrade to SDK'
[97] link 'Upgrade to SDK', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/2e0179412bae438939efef01d0b5cb3d83c49eab'
cell '8 years ago'
time 'Sep 18, 2017 3:44am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle.properties'
[98] link 'gradle.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradle.properties'
cell 'Fix the group'
[99] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
cell '8 years ago'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradlew'
[100] link 'gradlew', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew'
cell 'Update to Gradle 2.13.'
[101] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'gradlew.bat'
[102] link 'gradlew.bat', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew.bat'
cell 'Update to Gradle 2.13.'
[103] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'maven_push.gradle'
[104] link 'maven_push.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/maven_push.gradle'
cell 'Updating maven_push.gradle to the latest version.'
[105] link 'Updating maven_push.gradle to the latest version.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/d31a33ac40a3546c66c02025086b0504308a5c7c'
cell '9 years ago'
time 'Feb 17, 2016 9:56am GMT+0600'
StaticText '9 years ago'
row ''
cell 'settings.gradle'
[106] link 'settings.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/settings.gradle'
cell 'Move to a multi-project gradle build'
[107] link 'Move to a multi-project gradle build', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/ec84d3ea232fffffbb5aa5dd06df85c2ce998b22'
cell '11 years ago'
time 'Jan 9, 2014 2:37am GMT+0600'
StaticText '11 years ago'
row ''
cell 'slidinguppanel.png'
[108] link 'slidinguppanel.png', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/slidinguppanel.png'
cell 'Adding the screenshot'
[109] link 'Adding the screenshot', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3e35b3b06402af97a67c30d9e4c2bcd172206a31'
cell '12 years ago'
time 'Jun 1, 2013 1:28am GMT+0600'
StaticText '12 years ago'
article ''
[21] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
[50] strong ''
StaticText 'README.md'
paragraph ''
[51] link 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library'
image 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library/badge.svg'
StaticText ''
[52] link 'Badge', url='http://www.libtastic.com/technology/30/'
image 'Badge', url='http://www.libtastic.com/static/osbadges/30.png'
paragraph ''
[53] strong ''
StaticText 'Note:'
StaticText 'we are'
[54] strong ''
StaticText 'not'
StaticText 'actively responding to issues right now. If you find a bug, please submit a PR.'
heading 'Android Sliding Up Panel'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application.'
paragraph ''
StaticText 'As seen in Umano Android App (now acquired by Dropbox):'
paragraph ''
[55] link 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
image 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
heading 'Known Uses in Popular Apps'
list ''
listitem ''
ListMarker 'โข'
StaticText '[Soundcloud] ('
[64] link 'https://play.google.com/store/apps/details?id=com.soundcloud.android', url='https://play.google.com/store/apps/details?id=com.soundcloud.android'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Dropbox Paper] ('
[65] link 'https://play.google.com/store/apps/details?id=com.dropbox.paper', url='https://play.google.com/store/apps/details?id=com.dropbox.paper'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Snaptee] ('
[66] link 'https://play.google.com/store/apps/details?id=co.snaptee.android', url='https://play.google.com/store/apps/details?id=co.snaptee.android'
StaticText ')'
paragraph ''
StaticText 'If you are using the library and you would like to have your app listed, simply let us know.'
heading 'Importing the Library'
paragraph ''
StaticText 'Simply add the following dependency to your'
code ''
StaticText 'build.gradle'
StaticText 'file to use the latest version:'
code ''
StaticText "dependencies { repositories { mavenCentral () } compile 'com.sothree.slidinguppanel:library:3.4.0' }"
[22] button ''
heading 'Usage'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Include'
code ''
StaticText 'com.sothree.slidinguppanel.SlidingUpPanelLayout'
StaticText 'as the root element in your activity layout.'
listitem ''
ListMarker 'โข'
StaticText 'The layout must have'
code ''
StaticText 'gravity'
StaticText 'set to either'
code ''
StaticText 'top'
StaticText 'or'
code ''
StaticText 'bottom'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'Make sure that it has two children. The first child is your main layout. The second child is your layout for the sliding up panel.'
listitem ''
ListMarker 'โข'
StaticText 'The main layout should have the width and the height set to'
code ''
StaticText 'match_parent'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'The sliding layout should have the width set to'
code ''
StaticText 'match_parent'
StaticText 'and the height set to either'
code ''
StaticText 'match_parent'
StaticText ','
code ''
StaticText 'wrap_content'
StaticText 'or the max desireable height. If you would like to define the height as the percetange of the screen, set it to'
code ''
StaticText 'match_parent'
StaticText 'and also define a'
code ''
StaticText 'layout_weight'
StaticText 'attribute for the sliding view.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the whole panel will act as a drag region and will intercept clicks and drag events. You can restrict the drag area to a specific view by using the'
code ''
StaticText 'setDragView'
StaticText 'method or'
code ''
StaticText 'umanoDragView'
StaticText 'attribute.'
paragraph ''
StaticText 'For more information, please refer to the sample code.'
code ''
StaticText '<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree= "http://schemas.android.com/apk/res-auto" android:id= "@+id/sliding_layout" android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "bottom" sothree:umanoPanelHeight= "68dp" sothree:umanoShadowHeight= "4dp" > <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center" android:text= "Main Content" android:textSize= "16sp" /> <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center|top" android:text= "The Awesome Sliding Up Panel" android:textSize= "16sp" /> </com.sothree.slidinguppanel.SlidingUpPanelLayout>'
[23] button ''
paragraph ''
StaticText 'For smooth interaction with the ActionBar, make sure that'
code ''
StaticText 'windowActionBarOverlay'
StaticText 'is set to'
code ''
StaticText 'true'
StaticText 'in your styles:'
code ''
StaticText '<style name= "AppTheme" > <item name= "android:windowActionBarOverlay" > true </item> </style>'
[24] button ''
paragraph ''
StaticText 'However, in this case you would likely want to add a top margin to your main layout of'
code ''
StaticText '?android:attr/actionBarSize'
StaticText 'or'
code ''
StaticText '?attr/actionBarSize'
StaticText 'to support older API versions.'
heading 'Caveats, Additional Features and Customization'
list ''
listitem ''
ListMarker 'โข'
StaticText 'If you are using a custom'
code ''
StaticText 'umanoDragView'
StaticText ', the panel will pass through the click events to the main layout. Make your second layout'
code ''
StaticText 'clickable'
StaticText 'to prevent this.'
listitem ''
ListMarker 'โข'
StaticText 'You can change the panel height by using the'
code ''
StaticText 'setPanelHeight'
StaticText 'method or'
code ''
StaticText 'umanoPanelHeight'
StaticText 'attribute.'
listitem ''
ListMarker 'โข'
StaticText 'If you would like to hide the shadow above the sliding panel, set'
code ''
StaticText 'shadowHeight'
StaticText 'attribute to 0.'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setEnabled(false)'
StaticText 'to completely disable the sliding panel (including touch and programmatic sliding)'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "to disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'getPanelState'
StaticText 'to get the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setPanelState'
StaticText 'to set the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'You can add parallax to the main view by setting'
code ''
StaticText 'umanoParallaxOffset'
StaticText 'attribute (see demo for the example).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a anchor point in the middle of the screen using'
code ''
StaticText 'setAnchorPoint'
StaticText 'to allow an intermediate expanded state for the panel (similar to Google Maps).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a'
code ''
StaticText 'PanelSlideListener'
StaticText 'to monitor events about sliding panes.'
listitem ''
ListMarker 'โข'
StaticText 'You can also make the panel slide from the top by changing the'
code ''
StaticText 'layout_gravity'
StaticText 'attribute of the layout to'
code ''
StaticText 'top'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'You can provide a scroll interpolator for the panel movement by setting'
code ''
StaticText 'umanoScrollInterpolator'
StaticText 'attribute. For instance, if you want a bounce or overshoot effect for the panel.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the panel pushes up the main content. You can make it overlay the main content by using'
code ''
StaticText 'setOverlayed'
StaticText 'method or'
code ''
StaticText 'umanoOverlay'
StaticText 'attribute. This is useful if you would like to make the sliding layout semi-transparent. You can also set'
code ''
StaticText 'umanoClipPanel'
StaticText 'to false to make the panel transparent in non-overlay mode.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the main content is dimmed as the panel slides up. You can change the dim color by changing'
code ''
StaticText 'umanoFadeColor'
StaticText '. Set it to'
code ''
StaticText '"@android:color/transparent"'
StaticText 'to remove dimming completely.'
heading 'Scrollable Sliding Views'
paragraph ''
StaticText 'If you have a scrollable view inside of the sliding panel, make sure to set'
code ''
StaticText 'umanoScrollableView'
StaticText 'attribute on the panel to supported nested scrolling. The panel supports'
code ''
StaticText 'ListView'
StaticText ','
code ''
StaticText 'ScrollView'
StaticText 'and'
code ''
StaticText 'RecyclerView'
StaticText 'out of the box, but you can add support for any type of a scrollable view by setting a custom'
code ''
StaticText 'ScrollableViewHelper'
StaticText '. Here is an example for'
code ''
StaticText 'NestedScrollView'
code ''
StaticText 'public class NestedScrollableViewHelper extends ScrollableViewHelper { public int getScrollableViewScrollPosition(View scrollableView, boolean isSlidingUp) { if (mScrollableView instanceof NestedScrollView) { if(isSlidingUp){ return mScrollableView.getScrollY(); } else { NestedScrollView nsv = ((NestedScrollView) mScrollableView); View child = nsv.getChildAt(0); return (child.getBottom() - (nsv.getHeight() + nsv.getScrollY())); } } else { return 0; } } }'
[25] button ''
paragraph ''
StaticText 'Once you define your helper, you can set it using'
code ''
StaticText 'setScrollableViewHelper'
StaticText 'on the sliding panel.'
heading 'Implementation'
paragraph ''
StaticText 'This library was initially based on the opened-sourced'
[56] link 'SlidingPaneLayout', url='http://developer.android.com/reference/android/support/v4/widget/SlidingPaneLayout.html'
StaticText 'component from the r13 of the Android Support Library. Thanks Android team!'
heading 'Requirements'
paragraph ''
StaticText 'Tested on Android 2.2+'
heading 'Other Contributors'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Nov 23, 15 -'
[67] link '@kiyeonk', url='https://github.com/kiyeonk'
StaticText '- umanoScrollInterpolator support'
listitem ''
ListMarker 'โข'
StaticText 'Jan 21, 14 - ChaYoung You ('
[68] link '@yous', url='https://github.com/yous'
StaticText ') - Slide from the top support'
listitem ''
ListMarker 'โข'
StaticText 'Aug 20, 13 -'
[69] link '@gipi', url='https://github.com/gipi'
StaticText '- Android Studio Support'
listitem ''
ListMarker 'โข'
StaticText 'Jul 24, 13 - Philip Schiffer ('
[70] link '@hameno', url='https://github.com/hameno'
StaticText ') - Maven Support'
listitem ''
ListMarker 'โข'
StaticText 'Oct 20, 13 - Irina Preศa ('
[71] link '@iriina', url='https://github.com/iriina'
StaticText ') - Anchor Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 1, 13 - ('
[72] link '@youchy', url='https://github.com/youchy'
StaticText ') - XML Attributes Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 22, 13 - Vladimir Mironov ('
[73] link '@MironovNsk', url='https://github.com/nsk-mironov'
StaticText ') - Custom Expanded Panel Height'
paragraph ''
StaticText 'If you have an awesome pull request, send it over!'
heading 'Changelog'
list ''
listitem ''
ListMarker 'โข'
StaticText '3.4.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Use the latest support library 26 and update the min version to 14.'
listitem ''
ListMarker 'โฆ'
StaticText 'Bug fixes'
listitem ''
ListMarker 'โข'
StaticText '3.3.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Lots of bug fixes from various pull requests.'
listitem ''
ListMarker 'โฆ'
StaticText 'Removed the nineoldandroids dependency. Use ViewCompat instead.'
listitem ''
ListMarker 'โข'
StaticText '3.3.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'You can now set a'
code ''
StaticText 'FadeOnClickListener'
StaticText ', for when the faded area of the main content is clicked.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'PanelSlideListener'
StaticText 'has a new format (multiple of them can be set now'
listitem ''
ListMarker 'โฆ'
StaticText 'Fixed the setTouchEnabled bug'
listitem ''
ListMarker 'โข'
StaticText '3.2.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for'
code ''
StaticText 'umanoScrollInterpolator'
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for percentage-based sliding panel height using'
code ''
StaticText 'layout_weight'
StaticText 'attribute'
listitem ''
ListMarker 'โฆ'
StaticText 'Add'
code ''
StaticText 'ScrollableViewHelper'
StaticText 'to allow users extend support for new types of scrollable views.'
listitem ''
ListMarker 'โข'
StaticText '3.2.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Rename'
code ''
StaticText 'umanoParalaxOffset'
StaticText 'to'
code ''
StaticText 'umanoParallaxOffset'
listitem ''
ListMarker 'โฆ'
StaticText 'RecyclerView support.'
listitem ''
ListMarker 'โข'
StaticText '3.1.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umanoScrollableView'
StaticText 'to supported nested scrolling in children (only ScrollView and ListView are supported for now)'
listitem ''
ListMarker 'โข'
StaticText '3.0.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umano'
StaticText 'prefix for all attributes'
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'clipPanel'
StaticText 'attribute for supporting transparent panels in non-overlay mode.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setEnabled(false)'
StaticText '- now completely disables the sliding panel (touch and programmatic sliding)'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "- disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'getPanelState'
StaticText '- is now the only method to get the current panel state'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setPanelState'
StaticText '- is now the only method to modify the panel state from code'
listitem ''
ListMarker 'โข'
StaticText '2.0.2 - Allow'
code ''
StaticText 'wrap_content'
StaticText 'for sliding view height attribute. Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.1 - Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.0 - Cleaned up various public method calls. Added animated'
code ''
StaticText 'showPanel'
StaticText '/'
code ''
StaticText 'hidePanel'
StaticText 'methods.'
listitem ''
ListMarker 'โข'
StaticText '1.0.1 - Initial Release'
heading 'Licence'
blockquote ''
paragraph ''
StaticText 'Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:'
paragraph ''
[74] link 'http://www.apache.org/licenses/LICENSE-2.0', url='http://www.apache.org/licenses/LICENSE-2.0'
paragraph ''
StaticText 'Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.'
To fulfill the goal, we must star all eight topโstarred repos. The first repo on the list is currently displayed. The next action is to star this repository by clicking its Star button. Once starred, we will return to the list and repeat the process for the remaining seven repos.
click('8')RootWebArea 'Umano: News Read To You / AndroidSlidingUpPanel ยท GitLab', focused, url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[26] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[27] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[28] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[29] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[30] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[31] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[32] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[33] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'AndroidSlidingUpPanel'
[34] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
listitem ''
[35] link 'Project information', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/activity'
listitem ''
[36] link 'Repository', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master'
listitem ''
[37] link 'Issues', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues'
StaticText '267'
listitem ''
[38] link 'Merge requests', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests'
StaticText '34'
listitem ''
[39] link 'CI/CD', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipelines'
listitem ''
[40] link 'Deployments', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/environments'
listitem ''
[41] link 'Packages and registries', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/packages'
listitem ''
[42] link 'Monitor', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/incidents'
listitem ''
[43] link 'Analytics', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/value_stream_analytics'
listitem ''
[44] link 'Wiki', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/wikis/home'
listitem ''
[45] link 'Snippets', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[18] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[19] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[46] link 'Umano: News Read To You', url='http://127.0.0.1:8023/umano'
listitem ''
[47] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
main ''
StaticText 'A'
heading 'AndroidSlidingUpPanel'
StaticText 'Project ID: 152'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar', focused
[9] link '56', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks'
navigation ''
list ''
listitem ''
[57] link '361 Commits', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commits/master'
[75] strong ''
StaticText '361'
listitem ''
[58] link '35 Branches', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/branches'
[76] strong ''
StaticText '35'
listitem ''
[59] link '8 Tags', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tags'
[77] strong ''
StaticText '8'
listitem ''
[60] strong ''
StaticText '10.9 MB'
StaticText 'Project Storage'
listitem ''
[61] link '8 Releases', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/releases'
[78] strong ''
StaticText '8'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.'
image 'user avatar', url='https://www.gravatar.com/avatar/7bd4d29b1cf01ade7f09fbcff24f7b8c?s=80&d=identicon'
[12] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
StaticText 'tokudu authored'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
group ''
StaticText '45a46043'
[20] button 'Copy commit SHA', live='polite', relevant='additions text'
[13] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[62] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/'
listitem ''
StaticText '/'
[63] button 'Add to tree', hasPopup='menu', expanded=False
[14] link 'Find file', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/find_file/master'
[15] link 'Web IDE', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#modal-confirm-fork-webide'
[16] button 'Download'
StaticText 'Select Archive Format'
[17] link 'Clone', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#'
list ''
listitem ''
[48] link 'README', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
listitem ''
[49] link 'Apache License 2.0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell 'demo'
[79] link 'demo', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/demo'
cell 'Update the library'
[80] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle/wrapper'
[81] link 'gradle/wrapper', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/gradle'
cell 'Update gradle-wrapper.properties'
[82] link 'Update gradle-wrapper.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/b95f31dcee9cbd8ef59e1eb10224b8da5c47ff67'
cell '8 years ago'
time 'Jun 20, 2017 9:35am GMT+0600'
StaticText '8 years ago'
row ''
cell 'library'
[83] link 'library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/library'
cell 'Update the library'
[84] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell '.gitignore'
[85] link '.gitignore', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.gitignore'
cell 'Updated the gradle wrapper and prepared everything for maven central sync'
[86] link 'Updated the gradle wrapper and prepared everything for maven central sync', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3353430aac3b944468eeef869c29689308202039'
cell '11 years ago'
time 'May 14, 2014 10:08pm GMT+0600'
StaticText '11 years ago'
row ''
cell '.travis.yml'
[87] link '.travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.travis.yml'
cell 'Update .travis.yml'
[88] link 'Update .travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/96677b69d3531bbbee72724681967040a70c2c44'
cell '8 years ago'
time 'Jun 20, 2017 9:37am GMT+0600'
StaticText '8 years ago'
row ''
cell 'LICENSE.txt'
[89] link 'LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
cell 'Update LICENSE.txt'
[90] link 'Update LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/58b292f52348027b4cbdd3d405446fdba1e88152'
cell '9 years ago'
time 'Nov 18, 2015 3:19pm GMT+0600'
StaticText '9 years ago'
row ''
cell 'README.md'
[91] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
cell 'Update the library'
[92] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'build.gradle'
[93] link 'build.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/build.gradle'
cell 'Upgrade to SDK'
[94] link 'Upgrade to SDK', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/2e0179412bae438939efef01d0b5cb3d83c49eab'
cell '8 years ago'
time 'Sep 18, 2017 3:44am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle.properties'
[95] link 'gradle.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradle.properties'
cell 'Fix the group'
[96] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
cell '8 years ago'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradlew'
[97] link 'gradlew', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew'
cell 'Update to Gradle 2.13.'
[98] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'gradlew.bat'
[99] link 'gradlew.bat', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew.bat'
cell 'Update to Gradle 2.13.'
[100] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'maven_push.gradle'
[101] link 'maven_push.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/maven_push.gradle'
cell 'Updating maven_push.gradle to the latest version.'
[102] link 'Updating maven_push.gradle to the latest version.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/d31a33ac40a3546c66c02025086b0504308a5c7c'
cell '9 years ago'
time 'Feb 17, 2016 9:56am GMT+0600'
StaticText '9 years ago'
row ''
cell 'settings.gradle'
[103] link 'settings.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/settings.gradle'
cell 'Move to a multi-project gradle build'
[104] link 'Move to a multi-project gradle build', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/ec84d3ea232fffffbb5aa5dd06df85c2ce998b22'
cell '11 years ago'
time 'Jan 9, 2014 2:37am GMT+0600'
StaticText '11 years ago'
row ''
cell 'slidinguppanel.png'
[105] link 'slidinguppanel.png', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/slidinguppanel.png'
cell 'Adding the screenshot'
[106] link 'Adding the screenshot', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3e35b3b06402af97a67c30d9e4c2bcd172206a31'
cell '12 years ago'
time 'Jun 1, 2013 1:28am GMT+0600'
StaticText '12 years ago'
article ''
[21] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
[50] strong ''
StaticText 'README.md'
paragraph ''
[51] link 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library'
image 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library/badge.svg'
StaticText ''
[52] link 'Badge', url='http://www.libtastic.com/technology/30/'
image 'Badge', url='http://www.libtastic.com/static/osbadges/30.png'
paragraph ''
[53] strong ''
StaticText 'Note:'
StaticText 'we are'
[54] strong ''
StaticText 'not'
StaticText 'actively responding to issues right now. If you find a bug, please submit a PR.'
heading 'Android Sliding Up Panel'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application.'
paragraph ''
StaticText 'As seen in Umano Android App (now acquired by Dropbox):'
paragraph ''
[55] link 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
image 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
heading 'Known Uses in Popular Apps'
list ''
listitem ''
ListMarker 'โข'
StaticText '[Soundcloud] ('
[64] link 'https://play.google.com/store/apps/details?id=com.soundcloud.android', url='https://play.google.com/store/apps/details?id=com.soundcloud.android'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Dropbox Paper] ('
[65] link 'https://play.google.com/store/apps/details?id=com.dropbox.paper', url='https://play.google.com/store/apps/details?id=com.dropbox.paper'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Snaptee] ('
[66] link 'https://play.google.com/store/apps/details?id=co.snaptee.android', url='https://play.google.com/store/apps/details?id=co.snaptee.android'
StaticText ')'
paragraph ''
StaticText 'If you are using the library and you would like to have your app listed, simply let us know.'
heading 'Importing the Library'
paragraph ''
StaticText 'Simply add the following dependency to your'
code ''
StaticText 'build.gradle'
StaticText 'file to use the latest version:'
code ''
StaticText "dependencies { repositories { mavenCentral () } compile 'com.sothree.slidinguppanel:library:3.4.0' }"
[22] button ''
heading 'Usage'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Include'
code ''
StaticText 'com.sothree.slidinguppanel.SlidingUpPanelLayout'
StaticText 'as the root element in your activity layout.'
listitem ''
ListMarker 'โข'
StaticText 'The layout must have'
code ''
StaticText 'gravity'
StaticText 'set to either'
code ''
StaticText 'top'
StaticText 'or'
code ''
StaticText 'bottom'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'Make sure that it has two children. The first child is your main layout. The second child is your layout for the sliding up panel.'
listitem ''
ListMarker 'โข'
StaticText 'The main layout should have the width and the height set to'
code ''
StaticText 'match_parent'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'The sliding layout should have the width set to'
code ''
StaticText 'match_parent'
StaticText 'and the height set to either'
code ''
StaticText 'match_parent'
StaticText ','
code ''
StaticText 'wrap_content'
StaticText 'or the max desireable height. If you would like to define the height as the percetange of the screen, set it to'
code ''
StaticText 'match_parent'
StaticText 'and also define a'
code ''
StaticText 'layout_weight'
StaticText 'attribute for the sliding view.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the whole panel will act as a drag region and will intercept clicks and drag events. You can restrict the drag area to a specific view by using the'
code ''
StaticText 'setDragView'
StaticText 'method or'
code ''
StaticText 'umanoDragView'
StaticText 'attribute.'
paragraph ''
StaticText 'For more information, please refer to the sample code.'
code ''
StaticText '<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree= "http://schemas.android.com/apk/res-auto" android:id= "@+id/sliding_layout" android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "bottom" sothree:umanoPanelHeight= "68dp" sothree:umanoShadowHeight= "4dp" > <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center" android:text= "Main Content" android:textSize= "16sp" /> <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center|top" android:text= "The Awesome Sliding Up Panel" android:textSize= "16sp" /> </com.sothree.slidinguppanel.SlidingUpPanelLayout>'
[23] button ''
paragraph ''
StaticText 'For smooth interaction with the ActionBar, make sure that'
code ''
StaticText 'windowActionBarOverlay'
StaticText 'is set to'
code ''
StaticText 'true'
StaticText 'in your styles:'
code ''
StaticText '<style name= "AppTheme" > <item name= "android:windowActionBarOverlay" > true </item> </style>'
[24] button ''
paragraph ''
StaticText 'However, in this case you would likely want to add a top margin to your main layout of'
code ''
StaticText '?android:attr/actionBarSize'
StaticText 'or'
code ''
StaticText '?attr/actionBarSize'
StaticText 'to support older API versions.'
heading 'Caveats, Additional Features and Customization'
list ''
listitem ''
ListMarker 'โข'
StaticText 'If you are using a custom'
code ''
StaticText 'umanoDragView'
StaticText ', the panel will pass through the click events to the main layout. Make your second layout'
code ''
StaticText 'clickable'
StaticText 'to prevent this.'
listitem ''
ListMarker 'โข'
StaticText 'You can change the panel height by using the'
code ''
StaticText 'setPanelHeight'
StaticText 'method or'
code ''
StaticText 'umanoPanelHeight'
StaticText 'attribute.'
listitem ''
ListMarker 'โข'
StaticText 'If you would like to hide the shadow above the sliding panel, set'
code ''
StaticText 'shadowHeight'
StaticText 'attribute to 0.'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setEnabled(false)'
StaticText 'to completely disable the sliding panel (including touch and programmatic sliding)'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "to disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'getPanelState'
StaticText 'to get the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setPanelState'
StaticText 'to set the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'You can add parallax to the main view by setting'
code ''
StaticText 'umanoParallaxOffset'
StaticText 'attribute (see demo for the example).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a anchor point in the middle of the screen using'
code ''
StaticText 'setAnchorPoint'
StaticText 'to allow an intermediate expanded state for the panel (similar to Google Maps).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a'
code ''
StaticText 'PanelSlideListener'
StaticText 'to monitor events about sliding panes.'
listitem ''
ListMarker 'โข'
StaticText 'You can also make the panel slide from the top by changing the'
code ''
StaticText 'layout_gravity'
StaticText 'attribute of the layout to'
code ''
StaticText 'top'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'You can provide a scroll interpolator for the panel movement by setting'
code ''
StaticText 'umanoScrollInterpolator'
StaticText 'attribute. For instance, if you want a bounce or overshoot effect for the panel.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the panel pushes up the main content. You can make it overlay the main content by using'
code ''
StaticText 'setOverlayed'
StaticText 'method or'
code ''
StaticText 'umanoOverlay'
StaticText 'attribute. This is useful if you would like to make the sliding layout semi-transparent. You can also set'
code ''
StaticText 'umanoClipPanel'
StaticText 'to false to make the panel transparent in non-overlay mode.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the main content is dimmed as the panel slides up. You can change the dim color by changing'
code ''
StaticText 'umanoFadeColor'
StaticText '. Set it to'
code ''
StaticText '"@android:color/transparent"'
StaticText 'to remove dimming completely.'
heading 'Scrollable Sliding Views'
paragraph ''
StaticText 'If you have a scrollable view inside of the sliding panel, make sure to set'
code ''
StaticText 'umanoScrollableView'
StaticText 'attribute on the panel to supported nested scrolling. The panel supports'
code ''
StaticText 'ListView'
StaticText ','
code ''
StaticText 'ScrollView'
StaticText 'and'
code ''
StaticText 'RecyclerView'
StaticText 'out of the box, but you can add support for any type of a scrollable view by setting a custom'
code ''
StaticText 'ScrollableViewHelper'
StaticText '. Here is an example for'
code ''
StaticText 'NestedScrollView'
code ''
StaticText 'public class NestedScrollableViewHelper extends ScrollableViewHelper { public int getScrollableViewScrollPosition(View scrollableView, boolean isSlidingUp) { if (mScrollableView instanceof NestedScrollView) { if(isSlidingUp){ return mScrollableView.getScrollY(); } else { NestedScrollView nsv = ((NestedScrollView) mScrollableView); View child = nsv.getChildAt(0); return (child.getBottom() - (nsv.getHeight() + nsv.getScrollY())); } } else { return 0; } } }'
[25] button ''
paragraph ''
StaticText 'Once you define your helper, you can set it using'
code ''
StaticText 'setScrollableViewHelper'
StaticText 'on the sliding panel.'
heading 'Implementation'
paragraph ''
StaticText 'This library was initially based on the opened-sourced'
[56] link 'SlidingPaneLayout', url='http://developer.android.com/reference/android/support/v4/widget/SlidingPaneLayout.html'
StaticText 'component from the r13 of the Android Support Library. Thanks Android team!'
heading 'Requirements'
paragraph ''
StaticText 'Tested on Android 2.2+'
heading 'Other Contributors'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Nov 23, 15 -'
[67] link '@kiyeonk', url='https://github.com/kiyeonk'
StaticText '- umanoScrollInterpolator support'
listitem ''
ListMarker 'โข'
StaticText 'Jan 21, 14 - ChaYoung You ('
[68] link '@yous', url='https://github.com/yous'
StaticText ') - Slide from the top support'
listitem ''
ListMarker 'โข'
StaticText 'Aug 20, 13 -'
[69] link '@gipi', url='https://github.com/gipi'
StaticText '- Android Studio Support'
listitem ''
ListMarker 'โข'
StaticText 'Jul 24, 13 - Philip Schiffer ('
[70] link '@hameno', url='https://github.com/hameno'
StaticText ') - Maven Support'
listitem ''
ListMarker 'โข'
StaticText 'Oct 20, 13 - Irina Preศa ('
[71] link '@iriina', url='https://github.com/iriina'
StaticText ') - Anchor Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 1, 13 - ('
[72] link '@youchy', url='https://github.com/youchy'
StaticText ') - XML Attributes Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 22, 13 - Vladimir Mironov ('
[73] link '@MironovNsk', url='https://github.com/nsk-mironov'
StaticText ') - Custom Expanded Panel Height'
paragraph ''
StaticText 'If you have an awesome pull request, send it over!'
heading 'Changelog'
list ''
listitem ''
ListMarker 'โข'
StaticText '3.4.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Use the latest support library 26 and update the min version to 14.'
listitem ''
ListMarker 'โฆ'
StaticText 'Bug fixes'
listitem ''
ListMarker 'โข'
StaticText '3.3.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Lots of bug fixes from various pull requests.'
listitem ''
ListMarker 'โฆ'
StaticText 'Removed the nineoldandroids dependency. Use ViewCompat instead.'
listitem ''
ListMarker 'โข'
StaticText '3.3.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'You can now set a'
code ''
StaticText 'FadeOnClickListener'
StaticText ', for when the faded area of the main content is clicked.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'PanelSlideListener'
StaticText 'has a new format (multiple of them can be set now'
listitem ''
ListMarker 'โฆ'
StaticText 'Fixed the setTouchEnabled bug'
listitem ''
ListMarker 'โข'
StaticText '3.2.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for'
code ''
StaticText 'umanoScrollInterpolator'
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for percentage-based sliding panel height using'
code ''
StaticText 'layout_weight'
StaticText 'attribute'
listitem ''
ListMarker 'โฆ'
StaticText 'Add'
code ''
StaticText 'ScrollableViewHelper'
StaticText 'to allow users extend support for new types of scrollable views.'
listitem ''
ListMarker 'โข'
StaticText '3.2.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Rename'
code ''
StaticText 'umanoParalaxOffset'
StaticText 'to'
code ''
StaticText 'umanoParallaxOffset'
listitem ''
ListMarker 'โฆ'
StaticText 'RecyclerView support.'
listitem ''
ListMarker 'โข'
StaticText '3.1.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umanoScrollableView'
StaticText 'to supported nested scrolling in children (only ScrollView and ListView are supported for now)'
listitem ''
ListMarker 'โข'
StaticText '3.0.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umano'
StaticText 'prefix for all attributes'
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'clipPanel'
StaticText 'attribute for supporting transparent panels in non-overlay mode.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setEnabled(false)'
StaticText '- now completely disables the sliding panel (touch and programmatic sliding)'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "- disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'getPanelState'
StaticText '- is now the only method to get the current panel state'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setPanelState'
StaticText '- is now the only method to modify the panel state from code'
listitem ''
ListMarker 'โข'
StaticText '2.0.2 - Allow'
code ''
StaticText 'wrap_content'
StaticText 'for sliding view height attribute. Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.1 - Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.0 - Cleaned up various public method calls. Added animated'
code ''
StaticText 'showPanel'
StaticText '/'
code ''
StaticText 'hidePanel'
StaticText 'methods.'
listitem ''
ListMarker 'โข'
StaticText '1.0.1 - Initial Release'
heading 'Licence'
blockquote ''
paragraph ''
StaticText 'Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:'
paragraph ''
[74] link 'http://www.apache.org/licenses/LICENSE-2.0', url='http://www.apache.org/licenses/LICENSE-2.0'
paragraph ''
StaticText 'Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.'
To star the remaining repos, we need to navigate back to the list of the top eight projects on the Explore โ Projects โ Starred page. From there we can visit each project and click the star toggle (or the star button directly if available). The current page confirms that we have already completed the first repo; the next step is to continue with the remaining six or seven.
go_back()
RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
The first repository is already starred (button read โUnstarโ). To complete the goal, the remaining seven repositories must be starred. The most reliable way is to navigate to each project page and click the star toggle, as the list view does not expose a direct star button. So the next step is to open the next project, Meta / create-react-app, and perform the star action once on that page.
click('124')RootWebArea 'Meta / create-react-app ยท GitLab', focused, url='http://127.0.0.1:8023/facebook/create-react-app'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/facebook/create-react-app#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[30] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[31] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[32] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[33] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[34] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[35] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[36] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[37] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'create-react-app'
[38] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app'
StaticText 'C'
listitem ''
[39] link 'Project information', url='http://127.0.0.1:8023/facebook/create-react-app/activity'
listitem ''
[40] link 'Repository', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main'
listitem ''
[41] link 'Issues', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues'
StaticText '1,547'
listitem ''
[42] link 'Merge requests', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests'
StaticText '417'
listitem ''
[43] link 'CI/CD', url='http://127.0.0.1:8023/facebook/create-react-app/-/pipelines'
listitem ''
[44] link 'Deployments', url='http://127.0.0.1:8023/facebook/create-react-app/-/environments'
listitem ''
[45] link 'Packages and registries', url='http://127.0.0.1:8023/facebook/create-react-app/-/packages'
listitem ''
[46] link 'Monitor', url='http://127.0.0.1:8023/facebook/create-react-app/-/incidents'
list ''
listitem ''
[107] link 'Incidents', url='http://127.0.0.1:8023/facebook/create-react-app/-/incidents'
listitem ''
[47] link 'Analytics', url='http://127.0.0.1:8023/facebook/create-react-app/-/value_stream_analytics'
listitem ''
[48] link 'Wiki', url='http://127.0.0.1:8023/facebook/create-react-app/-/wikis/home'
listitem ''
[49] link 'Snippets', url='http://127.0.0.1:8023/facebook/create-react-app/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[50] link 'Meta', url='http://127.0.0.1:8023/facebook'
listitem ''
[51] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app'
main ''
StaticText 'C'
heading 'create-react-app'
StaticText 'Project ID: 122'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/facebook/create-react-app/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar'
[9] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks'
navigation ''
list ''
listitem ''
[84] link '2,800 Commits', url='http://127.0.0.1:8023/facebook/create-react-app/-/commits/main'
[108] strong ''
StaticText '2,800'
listitem ''
[85] link '424 Branches', url='http://127.0.0.1:8023/facebook/create-react-app/-/branches'
[109] strong ''
StaticText '424'
listitem ''
[86] link '414 Tags', url='http://127.0.0.1:8023/facebook/create-react-app/-/tags'
[110] strong ''
StaticText '414'
listitem ''
[87] strong ''
StaticText '692.2 MB'
StaticText 'Project Storage'
listitem ''
[88] link '83 Releases', url='http://127.0.0.1:8023/facebook/create-react-app/-/releases'
[111] strong ''
StaticText '83'
paragraph ''
StaticText 'Set up a modern web app by running one command.'
image 'user avatar', url='https://www.gravatar.com/avatar/1aefc6461706acc9ffe49a6b70bb00d2?s=80&d=identicon'
[12] link 'docs: fix link of "Building for Relative Paths" (#12691)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d960b9e38c062584ff6cfb1a70e1512509a966e7'
StaticText 'ryan.c authored'
time 'Sep 8, 2022 1:40pm GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'd960b9e3'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'main', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[89] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/'
listitem ''
StaticText '/'
[90] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/facebook/create-react-app/-/find_file/main'
[16] link 'Web IDE', url='http://127.0.0.1:8023/facebook/create-react-app#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/facebook/create-react-app#'
list ''
listitem ''
[52] link 'README', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
listitem ''
[53] link 'MIT License', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/LICENSE'
listitem ''
[54] link 'CHANGELOG', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-0.x.md'
listitem ''
[55] link 'CONTRIBUTING', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
table 'Files, directories, and submodules in the path / for commit reference main', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github'
[112] link '.github', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/.github'
cell 'chore(lint): lint all files (#12288)'
[113] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell 'docusaurus'
[114] link 'docusaurus', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/docusaurus'
cell 'docs: fix link of "Building for Relative Paths" (#12691)'
[115] link 'docs: fix link of "Building for Relative Paths" (#12691)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d960b9e38c062584ff6cfb1a70e1512509a966e7'
cell '3 years ago'
time 'Sep 8, 2022 1:40pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'packages'
[116] link 'packages', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/packages'
cell 'Merge pull request #12563 from rvdende/patch-1'
[117] link 'Merge pull request #12563 from rvdende/patch-1', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/2f891bbda3e777e049a89aa55797d29df76e222b'
cell '3 years ago'
time 'Jul 6, 2022 12:46am GMT+0600'
StaticText '3 years ago'
row ''
cell 'tasks'
[118] link 'tasks', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/tasks'
cell 'chore(lint): lint all files (#12288)'
[119] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell 'test'
[120] link 'test', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/test'
cell 'chore(lint): lint all files (#12288)'
[121] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.alexignore'
[122] link '.alexignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.alexignore'
cell 'Add Alex to lint documentation (#7852)'
[123] link 'Add Alex to lint documentation (#7852)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/1d03579f518d2d5dfd3e5678184dd4a7d8544774'
cell '6 years ago'
time 'Oct 25, 2019 12:14am GMT+0600'
StaticText '6 years ago'
row ''
cell '.alexrc'
[124] link '.alexrc', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.alexrc'
cell 'Add Alex to lint documentation (#7852)'
[125] link 'Add Alex to lint documentation (#7852)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/1d03579f518d2d5dfd3e5678184dd4a7d8544774'
cell '6 years ago'
time 'Oct 25, 2019 12:14am GMT+0600'
StaticText '6 years ago'
row ''
cell '.eslintignore'
[126] link '.eslintignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.eslintignore'
cell 'chore(lint): lint all files (#12288)'
[127] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.eslintrc.json'
[128] link '.eslintrc.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.eslintrc.json'
cell 'chore(lint): lint all files (#12288)'
[129] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitattributes'
[130] link '.gitattributes', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.gitattributes'
cell "fix: Fix azure-pipelines' endOfLine (#9258)"
[131] link "fix: Fix azure-pipelines' endOfLine (#9258)", url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/cef668a3b5b76646db92d67b766fe3e1734a0895'
cell '5 years ago'
time 'Sep 14, 2020 9:26am GMT+0600'
StaticText '5 years ago'
row ''
cell '.gitignore'
[132] link '.gitignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.gitignore'
cell 'chore(lint): lint all files (#12288)'
[133] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.prettierignore'
[134] link '.prettierignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.prettierignore'
SvgRoot ''
group 'prettier-icon-dark'
cell 'chore(lint): lint all files (#12288)'
[135] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.prettierrc'
[136] link '.prettierrc', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.prettierrc'
SvgRoot ''
group 'prettier-icon-dark'
cell 'chore: Update .prettierrc (#9860)'
[137] link 'chore: Update .prettierrc (#9860)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/c06f16c14cd5e59e6ada115ebf9ae05fedb0222c'
cell '5 years ago'
time 'Oct 27, 2020 12:18am GMT+0600'
StaticText '5 years ago'
row ''
cell 'CHANGELOG-0.x.md'
[138] link 'CHANGELOG-0.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-0.x.md'
cell 'Switch branch name'
[139] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-1.x.md'
[140] link 'CHANGELOG-1.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-1.x.md'
cell 'Switch branch name'
[141] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-2.x.md'
[142] link 'CHANGELOG-2.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-2.x.md'
cell 'Switch branch name'
[143] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-3.x.md'
[144] link 'CHANGELOG-3.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-3.x.md'
cell 'Switch branch name'
[145] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-4.x.md'
[146] link 'CHANGELOG-4.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-4.x.md'
cell 'docs: Changelog 5.0.0 (#11805)'
[147] link 'docs: Changelog 5.0.0 (#11805)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d73c2f24053da5272d4286049e27adcd767c1c8a'
cell '3 years ago'
time 'Jan 13, 2022 3:44am GMT+0600'
StaticText '3 years ago'
row ''
cell 'CHANGELOG.md'
[148] link 'CHANGELOG.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG.md'
cell 'Prepare 5.0.1 release'
[149] link 'Prepare 5.0.1 release', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/6fb4f977b7522c6a1632ec9133af30f5df3afb09'
cell '3 years ago'
time 'Apr 12, 2022 11:29pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'CODE_OF_CONDUCT.md'
[150] link 'CODE_OF_CONDUCT.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CODE_OF_CONDUCT.md'
cell 'Adopt Contributor Covenant (#7650)'
[151] link 'Adopt Contributor Covenant (#7650)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/78fb4cf11461107a485a0b1378e809b9684d1f22'
cell '6 years ago'
time 'Sep 6, 2019 9:53pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'CONTRIBUTING.md'
[152] link 'CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
cell 'Update CONTRIBUTING.md'
[153] link 'Update CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/9673858a3715287c40aef9e800c431c7d45c05a2'
cell '3 years ago'
time 'Dec 14, 2021 9:56pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'LICENSE'
[154] link 'LICENSE', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/LICENSE'
cell 'BSD+Patents -> MIT (#3189)'
[155] link 'BSD+Patents -> MIT (#3189)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/2e82ebb3371731a5c4e346f310848ddb23fd0976'
cell '8 years ago'
time 'Sep 26, 2017 3:30pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[156] link 'README.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
cell 'Update links in README'
[157] link 'Update links in README', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/b79ef9c4638ff62c64973542d08e2a633d9bc2c5'
cell '3 years ago'
time 'Dec 24, 2021 3:00am GMT+0600'
StaticText '3 years ago'
row ''
cell 'SECURITY.md'
[158] link 'SECURITY.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/SECURITY.md'
cell 'Create SECURITY.md'
[159] link 'Create SECURITY.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/5e41ca016c1a650774b1e04d126a12ca93743c30'
cell '5 years ago'
time 'Aug 11, 2020 3:49pm GMT+0600'
StaticText '5 years ago'
row ''
cell 'azure-pipelines-test-job.yml'
[160] link 'azure-pipelines-test-job.yml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/azure-pipelines-test-job.yml'
cell 'chore(test): make all tests install with `npm ci` (#11723)'
[161] link 'chore(test): make all tests install with `npm ci` (#11723)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/657739fb15a39fc2bb608ff446c308406afe6388'
cell '3 years ago'
time 'Dec 9, 2021 12:40am GMT+0600'
StaticText '3 years ago'
row ''
cell 'azure-pipelines.yml'
[162] link 'azure-pipelines.yml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/azure-pipelines.yml'
cell ''
cell ''
row ''
cell 'lerna.json'
[163] link 'lerna.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/lerna.json'
cell ''
cell ''
row ''
cell 'netlify.toml'
[164] link 'netlify.toml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/netlify.toml'
cell ''
cell ''
row ''
cell 'package-lock.json'
[165] link 'package-lock.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/package-lock.json'
cell ''
cell ''
row ''
cell 'package.json'
[166] link 'package.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/package.json'
cell ''
cell ''
row ''
cell 'screencast-error.svg'
[167] link 'screencast-error.svg', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/screencast-error.svg'
cell ''
cell ''
row ''
cell 'screencast.svg'
[168] link 'screencast.svg', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/screencast.svg'
cell ''
cell ''
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
[56] strong ''
StaticText 'README.md'
heading 'Create React App Build Status PRs Welcome'
[57] link 'Build Status', url='https://dev.azure.com/facebook/create-react-app/_build/latest?definitionId=1&branchName=main'
image 'Build Status', url='https://dev.azure.com/facebook/create-react-app/_apis/build/status/facebook.create-react-app?branchName=main'
[58] link 'PRs Welcome', url='https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md'
image 'PRs Welcome', url='https://img.shields.io/badge/PRs-welcome-green.svg'
[23] link 'Logo', url='https://create-react-app.dev/img/logo.svg'
image 'Logo', url='https://create-react-app.dev/img/logo.svg'
paragraph ''
StaticText 'Create React apps with no build configuration.'
list ''
listitem ''
ListMarker 'โข'
[91] link 'Creating an App', url='http://127.0.0.1:8023/facebook/create-react-app#creating-an-app'
StaticText 'โ How to create a new app.'
listitem ''
ListMarker 'โข'
[92] link 'User Guide', url='https://facebook.github.io/create-react-app/'
StaticText 'โ How to develop apps bootstrapped with Create React App.'
paragraph ''
StaticText 'Create React App works on macOS, Windows, and Linux. If something doesnโt work, please'
[59] link 'file an issue', url='https://github.com/facebook/create-react-app/issues/new'
StaticText '. If you have questions or need help, please ask in'
[60] link 'GitHub Discussions', url='https://github.com/facebook/create-react-app/discussions'
StaticText '.'
heading 'Quick Overview'
code ''
StaticText 'npx create-react-app my-app cd my-app npm start'
[24] button ''
paragraph ''
StaticText "If you've previously installed"
code ''
StaticText 'create-react-app'
StaticText 'globally via'
code ''
StaticText 'npm install -g create-react-app'
StaticText ', we recommend you uninstall the package using'
code ''
StaticText 'npm uninstall -g create-react-app'
StaticText 'or'
code ''
StaticText 'yarn global remove create-react-app'
StaticText 'to ensure that npx always uses the latest version.'
paragraph ''
emphasis ''
StaticText '('
[93] link 'npx', url='https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b'
StaticText 'comes with npm 5.2+ and higher, see'
[94] link 'instructions for older npm versions', url='https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f'
StaticText ')'
paragraph ''
StaticText 'Then open'
[61] link 'http://localhost:3000/', url='http://localhost:3000/'
StaticText 'to see your app. When youโre ready to deploy to production, create a minified bundle with'
code ''
StaticText 'npm run build'
StaticText '.'
paragraph ''
[62] link 'npm start', url='https://cdn.jsdelivr.net/gh/facebook/create-react-app@27b42ac7efa018f2541153ab30d63180f5fa39e0/screencast.svg'
image 'npm start', url='https://cdn.jsdelivr.net/gh/facebook/create-react-app@27b42ac7efa018f2541153ab30d63180f5fa39e0/screencast.svg'
heading 'Get Started Immediately'
paragraph ''
StaticText 'You'
[63] strong ''
StaticText 'donโt'
StaticText 'need to install or configure tools like webpack or Babel. They are preconfigured and hidden so that you can focus on the code.'
paragraph ''
StaticText 'Create a project, and youโre good to go.'
heading 'Creating an App'
paragraph ''
[64] strong ''
StaticText 'Youโll need to have Node 14.0.0 or later version on your local development machine'
StaticText '(but itโs not required on the server). We recommend using the latest LTS version. You can use'
[65] link 'nvm', url='https://github.com/creationix/nvm#installation'
StaticText '(macOS/Linux) or'
[66] link 'nvm-windows', url='https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows'
StaticText 'to switch Node versions between different projects.'
paragraph ''
StaticText 'To create a new app, you may choose one of the following methods:'
heading 'npx'
code ''
StaticText 'npx create-react-app my-app'
[25] button ''
paragraph ''
emphasis ''
StaticText '('
[95] link 'npx', url='https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b'
StaticText 'is a package runner tool that comes with npm 5.2+ and higher, see'
[96] link 'instructions for older npm versions', url='https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f'
StaticText ')'
heading 'npm'
code ''
StaticText 'npm init react-app my-app'
[26] button ''
paragraph ''
emphasis ''
code ''
StaticText 'npm init <initializer>'
StaticText 'is available in npm 6+'
heading 'Yarn'
code ''
StaticText 'yarn create react-app my-app'
[27] button ''
paragraph ''
emphasis ''
[97] link 'yarn create <starter-kit-package>', url='https://yarnpkg.com/lang/en/docs/cli/create/'
code ''
StaticText 'yarn create <starter-kit-package>'
StaticText 'is available in Yarn 0.25+'
paragraph ''
StaticText 'It will create a directory called'
code ''
StaticText 'my-app'
StaticText 'inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies:'
code ''
StaticText 'my-app โโโ README.md โโโ node_modules โโโ package.json โโโ .gitignore โโโ public โ โโโ favicon.ico โ โโโ index.html โ โโโ manifest.json โโโ src โโโ App.css โโโ App.js โโโ App.test.js โโโ index.css โโโ index.js โโโ logo.svg โโโ serviceWorker.js โโโ setupTests.js'
[28] button ''
paragraph ''
StaticText 'No configuration or complicated folder structures, only the files you need to build your app. Once the installation is done, you can open your project folder:'
code ''
StaticText 'cd my-app'
[29] button ''
paragraph ''
StaticText 'Inside the newly created project, you can run some built-in commands:'
heading 'npm start or yarn start'
code ''
StaticText 'npm start'
code ''
StaticText 'yarn start'
paragraph ''
StaticText 'Runs the app in development mode. Open'
[67] link 'http://localhost:3000', url='http://localhost:3000/'
StaticText 'to view it in the browser.'
paragraph ''
StaticText 'The page will automatically reload if you make changes to the code. You will see the build errors and lint warnings in the console.'
paragraph ''
[68] link 'Build errors', url='https://cdn.jsdelivr.net/gh/marionebl/create-react-app@9f6282671c54f0874afd37a72f6689727b562498/screencast-error.svg'
image 'Build errors', url='https://cdn.jsdelivr.net/gh/marionebl/create-react-app@9f6282671c54f0874afd37a72f6689727b562498/screencast-error.svg'
heading 'npm test or yarn test'
code ''
StaticText 'npm test'
code ''
StaticText 'yarn test'
paragraph ''
StaticText 'Runs the test watcher in an interactive mode. By default, runs tests related to files changed since the last commit.'
paragraph ''
[69] link 'Read more about testing.', url='https://facebook.github.io/create-react-app/docs/running-tests'
heading 'npm run build or yarn build'
code ''
StaticText 'npm run build'
code ''
StaticText 'yarn build'
paragraph ''
StaticText 'Builds the app for production to the'
code ''
StaticText 'build'
StaticText 'folder. It correctly bundles React in production mode and optimizes the build for the best performance.'
paragraph ''
StaticText 'The build is minified and the filenames include the hashes.'
paragraph ''
StaticText 'Your app is ready to be deployed.'
heading 'User Guide'
paragraph ''
StaticText 'You can find detailed instructions on using Create React App and many tips in'
[70] link 'its documentation', url='https://facebook.github.io/create-react-app/'
StaticText '.'
heading 'How to Update to New Versions?'
paragraph ''
StaticText 'Please refer to the'
[71] link 'User Guide', url='https://facebook.github.io/create-react-app/docs/updating-to-new-releases'
StaticText 'for this and other information.'
heading 'Philosophy'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[169] strong ''
StaticText 'One Dependency:'
StaticText 'There is only one build dependency. It uses webpack, Babel, ESLint, and other amazing projects, but provides a cohesive curated experience on top of them.'
listitem ''
ListMarker 'โข'
paragraph ''
[170] strong ''
StaticText 'No Configuration Required:'
StaticText "You don't need to configure anything. A reasonably good configuration of both development and production builds is handled for you so you can focus on writing code."
listitem ''
ListMarker 'โข'
paragraph ''
[171] strong ''
StaticText 'No Lock-In:'
StaticText 'You can โejectโ to a custom setup at any time. Run a single command, and all the configuration and build dependencies will be moved directly into your project, so you can pick up right where you left off.'
heading 'Whatโs Included?'
paragraph ''
StaticText 'Your environment will have everything you need to build a modern single-page React app:'
list ''
listitem ''
ListMarker 'โข'
StaticText 'React, JSX, ES6, TypeScript and Flow syntax support.'
listitem ''
ListMarker 'โข'
StaticText 'Language extras beyond ES6 like the object spread operator.'
listitem ''
ListMarker 'โข'
StaticText 'Autoprefixed CSS, so you donโt need'
code ''
StaticText '-webkit-'
StaticText 'or other prefixes.'
listitem ''
ListMarker 'โข'
StaticText 'A fast interactive unit test runner with built-in support for coverage reporting.'
listitem ''
ListMarker 'โข'
StaticText 'A live development server that warns about common mistakes.'
listitem ''
ListMarker 'โข'
StaticText 'A build script to bundle JS, CSS, and images for production, with hashes and sourcemaps.'
listitem ''
ListMarker 'โข'
StaticText 'An offline-first'
[98] link 'service worker', url='https://developers.google.com/web/fundamentals/getting-started/primers/service-workers'
StaticText 'and a'
[99] link 'web app manifest', url='https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/'
StaticText ', meeting all the'
[100] link 'Progressive Web App', url='https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app'
StaticText 'criteria. ('
emphasis ''
StaticText 'Note: Using the service worker is opt-in as of'
code ''
StaticText 'react-scripts@2.0.0'
StaticText 'and higher'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText 'Hassle-free updates for the above tools with a single dependency.'
paragraph ''
StaticText 'Check out'
[72] link 'this guide', url='https://github.com/nitishdayal/cra_closer_look'
StaticText 'for an overview of how these tools fit together.'
paragraph ''
StaticText 'The tradeoff is that'
[73] strong ''
StaticText 'these tools are preconfigured to work in a specific way'
StaticText '. If your project needs more customization, you can'
[74] link '"eject"', url='https://facebook.github.io/create-react-app/docs/available-scripts#npm-run-eject'
StaticText 'and customize it, but then you will need to maintain this configuration.'
heading 'Popular Alternatives'
paragraph ''
StaticText 'Create React App is a great fit for:'
list ''
listitem ''
ListMarker 'โข'
[101] strong ''
StaticText 'Learning React'
StaticText 'in a comfortable and feature-rich development environment.'
listitem ''
ListMarker 'โข'
[102] strong ''
StaticText 'Starting new single-page React applications.'
listitem ''
ListMarker 'โข'
[103] strong ''
StaticText 'Creating examples'
StaticText 'with React for your libraries and components.'
paragraph ''
StaticText 'Here are a few common cases where you might want to try something else:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you want to'
[172] strong ''
StaticText 'try React'
StaticText 'without hundreds of transitive build tool dependencies, consider'
[173] link 'using a single HTML file or an online sandbox instead', url='https://reactjs.org/docs/getting-started.html#try-react'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you need to'
[174] strong ''
StaticText 'integrate React code with a server-side template framework'
StaticText 'like Rails, Django or Symfony, or if youโre'
[175] strong ''
StaticText 'not building a single-page app'
StaticText ', consider using'
[176] link 'nwb', url='https://github.com/insin/nwb'
StaticText ', or'
[177] link 'Neutrino', url='https://neutrino.js.org/'
StaticText 'which are more flexible. For Rails specifically, you can use'
[178] link 'Rails Webpacker', url='https://github.com/rails/webpacker'
StaticText '. For Symfony, try'
[179] link "Symfony's webpack Encore", url='https://symfony.com/doc/current/frontend/encore/reactjs.html'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you need to'
[180] strong ''
StaticText 'publish a React component'
StaticText ','
[181] link 'nwb', url='https://github.com/insin/nwb'
StaticText 'can'
[182] link 'also do this', url='https://github.com/insin/nwb#react-components-and-libraries'
StaticText ', as well as'
[183] link "Neutrino's react-components preset", url='https://neutrino.js.org/packages/react-components/'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you want to do'
[184] strong ''
StaticText 'server rendering'
StaticText 'with React and Node.js, check out'
[185] link 'Next.js', url='https://nextjs.org/'
StaticText 'or'
[186] link 'Razzle', url='https://github.com/jaredpalmer/razzle'
StaticText '. Create React App is agnostic of the backend, and only produces static HTML/JS/CSS bundles.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If your website is'
[187] strong ''
StaticText 'mostly static'
StaticText '(for example, a portfolio or a blog), consider using'
[188] link 'Gatsby', url='https://www.gatsbyjs.org/'
StaticText 'or'
[189] link 'Next.js', url='https://nextjs.org/'
StaticText '. Unlike Create React App, Gatsby pre-renders the website into HTML at build time. Next.js supports both server rendering and pre-rendering.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'Finally, if you need'
[190] strong ''
StaticText 'more customization'
StaticText ', check out'
[191] link 'Neutrino', url='https://neutrino.js.org/'
StaticText 'and its'
[192] link 'React preset', url='https://neutrino.js.org/packages/react/'
StaticText '.'
paragraph ''
StaticText 'All of the above tools can work with little to no configuration.'
paragraph ''
StaticText 'If you prefer configuring the build yourself,'
[75] link 'follow this guide', url='https://reactjs.org/docs/add-react-to-a-website.html'
StaticText '.'
heading 'React Native'
paragraph ''
StaticText 'Looking for something similar, but for React Native? Check out'
[76] link 'Expo CLI', url='https://github.com/expo/expo-cli'
StaticText '.'
heading 'Contributing'
paragraph ''
StaticText "We'd love to have your helping hand on"
code ''
StaticText 'create-react-app'
StaticText '! See'
[77] link 'CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
StaticText "for more information on what we're looking for and how to get started."
heading 'Supporting Create React App'
paragraph ''
StaticText "Create React App is a community maintained project and all contributors are volunteers. If you'd like to support the future development of Create React App then please consider donating to our"
[78] link 'Open Collective', url='https://opencollective.com/create-react-app'
StaticText '.'
heading 'Credits'
paragraph ''
StaticText 'This project exists thanks to all the people who'
[79] link 'contribute', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
StaticText '.'
[80] link '', url='https://github.com/facebook/create-react-app/graphs/contributors'
image '', url='https://opencollective.com/create-react-app/contributors.svg?width=890&button=false'
paragraph ''
StaticText 'Thanks to'
[81] link 'Netlify', url='https://www.netlify.com/'
StaticText 'for hosting our documentation.'
heading 'Acknowledgements'
paragraph ''
StaticText 'We are grateful to the authors of existing related projects for their ideas and collaboration:'
list ''
listitem ''
ListMarker 'โข'
[104] link '@eanplatter', url='https://github.com/eanplatter'
listitem ''
ListMarker 'โข'
[105] link '@insin', url='https://github.com/insin'
listitem ''
ListMarker 'โข'
[106] link '@mxstbr', url='https://github.com/mxstbr'
heading 'License'
paragraph ''
StaticText 'Create React App is open source software'
[82] link 'licensed as MIT', url='https://github.com/facebook/create-react-app/blob/main/LICENSE'
StaticText '. The Create React App logo is licensed under a'
[83] link 'Creative Commons Attribution 4.0 International license', url='https://creativecommons.org/licenses/by/4.0/'
StaticText '.'
The current page does not contain links to the other topโstarred repos; we need to return to the list page where those links are present.
go_back()
RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
The goal requires all eight repos to be starred. Since the Explore page does not expose a direct star button for each repo, we must open each repositoryโs page. We already verified that Umano and Meta are starred. The next repo to star is KarlโฏKroening / ffmpegโpython. To proceed, click its link.
click('125')RootWebArea 'Karl Kroening / ffmpeg-python ยท GitLab', focused, url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[42] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[43] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[44] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[45] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[46] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[47] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[48] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[49] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'ffmpeg-python'
[50] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
StaticText 'F'
listitem ''
[51] link 'Project information', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/activity'
listitem ''
[52] link 'Repository', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master'
listitem ''
[53] link 'Issues', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues'
StaticText '402'
listitem ''
[54] link 'Merge requests', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests'
StaticText '34'
listitem ''
[55] link 'CI/CD', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/pipelines'
listitem ''
[56] link 'Deployments', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/environments'
listitem ''
[57] link 'Packages and registries', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/packages'
listitem ''
[58] link 'Monitor', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/incidents'
listitem ''
[59] link 'Analytics', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/value_stream_analytics'
listitem ''
[60] link 'Wiki', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/wikis/home'
listitem ''
[61] link 'Snippets', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[62] link 'Karl Kroening', url='http://127.0.0.1:8023/kkroening'
listitem ''
[63] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
main ''
StaticText 'F'
heading 'ffmpeg-python'
StaticText 'Project ID: 133'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Star'
[9] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks'
navigation ''
list ''
listitem ''
[92] link '458 Commits', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commits/master'
[117] strong ''
StaticText '458'
listitem ''
[93] link '45 Branches', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/branches'
[118] strong ''
StaticText '45'
listitem ''
[94] link '14 Tags', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tags'
[119] strong ''
StaticText '14'
listitem ''
[95] strong ''
StaticText '15.1 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Python bindings for FFmpeg - with complex filtering support'
image 'user avatar', url='https://www.gravatar.com/avatar/a8ce807b69e77f46c8b15b86ae1839c5?s=80&d=identicon'
[12] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
StaticText 'Christian Clauss authored'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'df129c7b'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[96] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/'
listitem ''
StaticText '/'
[97] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/find_file/master'
[16] link 'Web IDE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#'
list ''
listitem ''
[64] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
listitem ''
[65] link 'Apache License 2.0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github/workflows'
[120] link '.github/workflows', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/.github'
cell 'Upgrade GitHub Actions again (#679)'
[121] link 'Upgrade GitHub Actions again (#679)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/35886c970c7b3a757115f5a7b6fd1753e64832ce'
cell '3 years ago'
time 'Jul 12, 2022 3:02am GMT+0600'
StaticText '3 years ago'
row ''
cell 'doc'
[122] link 'doc', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/doc'
cell 'Fix `heigth` -> `height` typo (#596)'
[123] link 'Fix `heigth` -> `height` typo (#596)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fc41f4aa84084bfae6e2db6a5a1fe7949bb28bae'
cell '3 years ago'
time 'Mar 7, 2022 3:55pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'examples'
[124] link 'examples', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/examples'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[125] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'ffmpeg'
[126] link 'ffmpeg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/ffmpeg'
cell "Let's implicitly fix a typo (#681)"
[127] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
cell '3 years ago'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[128] link '.gitignore', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/.gitignore'
cell 'Add input/output support in `run` command; update docs'
[129] link 'Add input/output support in `run` command; update docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/ac57e2df132d4ea05dacee642de74d057bd98f5d'
cell '7 years ago'
time 'May 20, 2018 2:13pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'LICENSE'
[130] link 'LICENSE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
cell 'Update LICENSE with full license text'
[131] link 'Update LICENSE with full license text', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/221f57428d7ff3bb39ee635bbeb101a68efdbf53'
cell '7 years ago'
time 'Jan 10, 2018 4:41pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'MANIFEST'
[132] link 'MANIFEST', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/MANIFEST'
cell 'Update readme; bump version; ignore errors in `git rev-parse`'
[133] link 'Update readme; bump version; ignore errors in `git rev-parse`', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f32ec43b61f4453997bf0ae630d8b7a7fce98b18'
cell '8 years ago'
time 'May 28, 2017 2:42pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README'
[134] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README'
cell 'Update readme filename'
[135] link 'Update readme filename', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/708513b912fdb0ec443d51566edcb91a1634a470'
cell '8 years ago'
time 'May 14, 2017 4:23pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[136] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
cell 'Add FFmpeg installation instructions (#642)'
[137] link 'Add FFmpeg installation instructions (#642)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/cb9d400467014dd371ff5bb24d86be3fa6df8a2b'
cell '3 years ago'
time 'Mar 7, 2022 3:19pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'pyproject.toml'
[138] link 'pyproject.toml', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pyproject.toml'
cell 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)'
[139] link 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fd1da13f110ad4d20ab768bfafaeef36dce2862f'
cell '3 years ago'
time 'Mar 7, 2022 3:24am GMT+0600'
StaticText '3 years ago'
row ''
cell 'pytest.ini'
[140] link 'pytest.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pytest.ini'
cell 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs'
[141] link 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f3b32d6d41d65701aa65bae951518e1ec387b483'
cell '8 years ago'
time 'May 14, 2017 4:18pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'requirements.txt'
[142] link 'requirements.txt', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/requirements.txt'
cell 'Use Black formatter'
[143] link 'Use Black formatter', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/8ea0f4ca4b3531f90d141b1eea9db73d98ff62b9'
cell '6 years ago'
time 'Jun 3, 2019 3:03pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'setup.cfg'
[144] link 'setup.cfg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.cfg'
cell 'Make `setup.py test` work'
[145] link 'Make `setup.py test` work', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6960751de0b14e5a3640fe16d91f44008397026d'
cell '8 years ago'
time 'Jun 14, 2017 11:29am GMT+0600'
StaticText '8 years ago'
row ''
cell 'setup.py'
[146] link 'setup.py', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.py'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[147] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'tox.ini'
[148] link 'tox.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/tox.ini'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[149] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
[66] strong ''
StaticText 'README.md'
heading 'ffmpeg-python: Python bindings for FFmpeg'
paragraph ''
[67] link 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml'
image 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg'
[23] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
heading 'Overview'
paragraph ''
StaticText 'There are tons of Python FFmpeg wrappers out there but they seem to lack complex filter support.'
code ''
StaticText 'ffmpeg-python'
StaticText 'works well for simple as well as complex signal graphs.'
heading 'Quickstart'
paragraph ''
StaticText 'Flip a video horizontally:'
code ''
StaticText "import ffmpeg stream = ffmpeg . input ( 'input.mp4' ) stream = ffmpeg . hflip ( stream ) stream = ffmpeg . output ( stream , 'output.mp4' ) ffmpeg . run ( stream )"
[24] button ''
paragraph ''
StaticText 'Or if you prefer a fluent interface:'
code ''
StaticText "import ffmpeg ( ffmpeg . input ( 'input.mp4' ) . hflip () . output ( 'output.mp4' ) . run () )"
[25] button ''
heading 'API reference'
[68] link 'API reference', url='https://kkroening.github.io/ffmpeg-python/'
heading 'Complex filter graphs'
paragraph ''
StaticText 'FFmpeg is extremely powerful, but its command-line interface gets really complicated rather quickly - especially when working with signal graphs and doing anything more than trivial.'
paragraph ''
StaticText 'Take for example a signal graph that looks like this:'
paragraph ''
[69] link 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
image 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
paragraph ''
StaticText 'The corresponding command-line arguments are pretty gnarly:'
code ''
StaticText 'ffmpeg -i input.mp4 -i overlay.png -filter_complex "[0]trim=start_frame=10:end_frame=20[v0]; \\\\ [0]trim=start_frame=30:end_frame=40[v1];[v0][v1]concat=n=2[v2];[1]hflip[v3]; \\\\ [v2][v3]overlay=eof_action=repeat[v4];[v4]drawbox=50:50:120:120:red:t=5[v5]" \\\\ -map [ v5] output.mp4'
[26] button ''
paragraph ''
StaticText "Maybe this looks great to you, but if you're not an FFmpeg command-line expert, it probably looks alien."
paragraph ''
StaticText "If you're like me and find Python to be powerful and readable, it's easier with"
code ''
StaticText 'ffmpeg-python'
StaticText ':'
code ''
StaticText "import ffmpeg in_file = ffmpeg . input ( 'input.mp4' ) overlay_file = ffmpeg . input ( 'overlay.png' ) ( ffmpeg . concat ( in_file . trim ( start_frame = 10 , end_frame = 20 ), in_file . trim ( start_frame = 30 , end_frame = 40 ), ) . overlay ( overlay_file . hflip ()) . drawbox ( 50 , 50 , 120 , 120 , color = 'red' , thickness = 5 ) . output ( 'out.mp4' ) . run () )"
[27] button ''
paragraph ''
code ''
StaticText 'ffmpeg-python'
StaticText 'takes care of running'
code ''
StaticText 'ffmpeg'
StaticText 'with the command-line arguments that correspond to the above filter diagram, in familiar Python terms.'
[28] link 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
image 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
paragraph ''
StaticText 'Real-world signal graphs can get a heck of a lot more complex, but'
code ''
StaticText 'ffmpeg-python'
StaticText 'handles arbitrarily large (directed-acyclic) signal graphs.'
heading 'Installation'
heading 'Installing ffmpeg-python'
code ''
StaticText 'ffmpeg-python'
paragraph ''
StaticText 'The latest version of'
code ''
StaticText 'ffmpeg-python'
StaticText 'can be acquired via a typical pip install:'
code ''
StaticText 'pip install ffmpeg-python'
[29] button ''
paragraph ''
StaticText 'Or the source can be cloned and installed from locally:'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git pip install -e ./ffmpeg-python'
[30] button ''
blockquote ''
paragraph ''
[98] strong ''
StaticText 'Note'
StaticText ':'
code ''
StaticText 'ffmpeg-python'
StaticText 'makes no attempt to download/install FFmpeg, as'
code ''
StaticText 'ffmpeg-python'
StaticText 'is merely a pure-Python wrapper - whereas FFmpeg installation is platform-dependent/environment-specific, and is thus the responsibility of the user, as described below.'
heading 'Installing FFmpeg'
paragraph ''
StaticText 'Before using'
code ''
StaticText 'ffmpeg-python'
StaticText ', FFmpeg must be installed and accessible via the'
code ''
StaticText '$PATH'
StaticText 'environment variable.'
paragraph ''
StaticText 'There are a variety of ways to install FFmpeg, such as the'
[70] link 'official download links', url='https://ffmpeg.org/download.html'
StaticText ', or using your package manager of choice (e.g.'
code ''
StaticText 'sudo apt install ffmpeg'
StaticText 'on Debian/Ubuntu,'
code ''
StaticText 'brew install ffmpeg'
StaticText 'on OS X, etc.).'
paragraph ''
StaticText 'Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the'
code ''
StaticText 'ffmpeg'
StaticText 'command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):'
code ''
StaticText '$ ffmpeg ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)'
[31] button ''
blockquote ''
paragraph ''
[99] strong ''
StaticText 'Note'
StaticText ': The actual version information displayed here may vary from one system to another; but if a message such as'
code ''
StaticText 'ffmpeg: command not found'
StaticText 'appears instead of the version information, FFmpeg is not properly installed.'
heading 'Examples'
[71] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
paragraph ''
StaticText 'When in doubt, take a look at the'
[72] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText "to see if there's something that's close to whatever you're trying to do."
paragraph ''
StaticText 'Here are a few:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[150] link 'Convert video to numpy array', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-video-to-numpy-array'
listitem ''
ListMarker 'โข'
paragraph ''
[151] link 'Generate thumbnail for video', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#generate-thumbnail-for-video'
listitem ''
ListMarker 'โข'
paragraph ''
[152] link 'Read raw PCM audio via pipe', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-sound-to-raw-pcm-audio'
listitem ''
ListMarker 'โข'
paragraph ''
[153] link 'JupyterLab/Notebook stream editor', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#jupyter-stream-editor'
[32] link 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
image 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
list ''
listitem ''
ListMarker 'โข'
[100] link 'Tensorflow/DeepDream streaming', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#tensorflow-streaming'
[33] link 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
image 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
paragraph ''
StaticText 'See the'
[73] link 'Examples README', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText 'for additional examples.'
heading 'Custom Filters'
paragraph ''
StaticText "Don't see the filter you're looking for? While"
code ''
StaticText 'ffmpeg-python'
StaticText 'includes shorthand notation for some of the most commonly used filters (such as'
code ''
StaticText 'concat'
StaticText '), all filters can be referenced via the'
code ''
StaticText '.filter'
StaticText 'operator:'
code ''
StaticText "stream = ffmpeg . input ( 'dummy.mp4' ) stream = ffmpeg . filter ( stream , 'fps' , fps = 25 , round = 'up' ) stream = ffmpeg . output ( stream , 'dummy2.mp4' ) ffmpeg . run ( stream )"
[34] button ''
paragraph ''
StaticText 'Or fluently:'
code ''
StaticText "( ffmpeg . input ( 'dummy.mp4' ) . filter ( 'fps' , fps = 25 , round = 'up' ) . output ( 'dummy2.mp4' ) . run () )"
[35] button ''
paragraph ''
[74] strong ''
StaticText 'Special option names:'
paragraph ''
StaticText 'Arguments with special names such as'
code ''
StaticText '-qscale:v'
StaticText '(variable bitrate),'
code ''
StaticText '-b:v'
StaticText '(constant bitrate), etc. can be specified as a keyword-args dictionary as follows:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . output ( 'out.mp4' , ** { 'qscale:v' : 3 }) . run () )"
[36] button ''
paragraph ''
[75] strong ''
StaticText 'Multiple inputs:'
paragraph ''
StaticText 'Filters that take multiple input streams can be used by passing the input streams as an array to'
code ''
StaticText 'ffmpeg.filter'
StaticText ':'
code ''
StaticText "main = ffmpeg . input ( 'main.mp4' ) logo = ffmpeg . input ( 'logo.png' ) ( ffmpeg . filter ([ main , logo ], 'overlay' , 10 , 10 ) . output ( 'out.mp4' ) . run () )"
[37] button ''
paragraph ''
[76] strong ''
StaticText 'Multiple outputs:'
paragraph ''
StaticText 'Filters that produce multiple outputs can be used with'
code ''
StaticText '.filter_multi_output'
StaticText ':'
code ''
StaticText "split = ( ffmpeg . input ( 'in.mp4' ) . filter_multi_output ( 'split' ) # or `.split()` ) ( ffmpeg . concat ( split [ 0 ], split [ 1 ]. reverse ()) . output ( 'out.mp4' ) . run () )"
[38] button ''
paragraph ''
StaticText '(In this particular case,'
code ''
StaticText '.split()'
StaticText 'is the equivalent shorthand, but the general approach works for other multi-output filters)'
paragraph ''
[77] strong ''
StaticText 'String expressions:'
paragraph ''
StaticText 'Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . filter ( 'crop' , 'in_w-2*10' , 'in_h-2*20' ) . input ( 'out.mp4' ) )"
[39] button ''
paragraph ''
StaticText 'When in doubt, refer to the'
[78] link 'existing filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
StaticText ','
[79] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText ', and/or the'
[80] link 'official ffmpeg documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
StaticText '.'
heading 'Frequently asked questions'
paragraph ''
[81] strong ''
StaticText 'Why do I get an import/attribute/etc. error from'
code ''
StaticText 'import ffmpeg'
StaticText '?'
paragraph ''
StaticText 'Make sure you ran'
code ''
StaticText 'pip install ffmpeg-python'
StaticText 'and'
emphasis ''
[101] strong ''
StaticText 'not'
StaticText ''
code ''
StaticText 'pip install ffmpeg'
StaticText '(wrong) or'
code ''
StaticText 'pip install python-ffmpeg'
StaticText '(also wrong).'
paragraph ''
[82] strong ''
StaticText 'Why did my audio stream get dropped?'
paragraph ''
StaticText 'Some ffmpeg filters drop audio streams, and care must be taken to preserve the audio in the final output. The'
code ''
StaticText '.audio'
StaticText 'and'
code ''
StaticText '.video'
StaticText 'operators can be used to reference the audio/video portions of a stream so that they can be processed separately and then re-combined later in the pipeline.'
paragraph ''
StaticText 'This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the way while users may refer to the official ffmpeg documentation as to why certain filters drop audio.'
paragraph ''
StaticText 'As usual, take a look at the'
[83] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline'
StaticText '('
emphasis ''
StaticText 'Audio/video pipeline'
StaticText 'in particular).'
paragraph ''
[84] strong ''
StaticText 'How can I find out the used command line arguments?'
paragraph ''
StaticText 'You can run'
code ''
StaticText 'stream.get_args()'
StaticText 'before'
code ''
StaticText 'stream.run()'
StaticText 'to retrieve the command line arguments that will be passed to'
code ''
StaticText 'ffmpeg'
StaticText '. You can also run'
code ''
StaticText 'stream.compile()'
StaticText 'that also includes the'
code ''
StaticText 'ffmpeg'
StaticText 'executable as the first argument.'
paragraph ''
[85] strong ''
StaticText 'How do I do XYZ?'
paragraph ''
StaticText 'Take a look at each of the links in the'
[86] link 'Additional Resources', url='https://kkroening.github.io/ffmpeg-python/'
StaticText "section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far."
paragraph ''
StaticText 'Issues not directly related to'
code ''
StaticText 'ffmpeg-python'
StaticText "or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed."
paragraph ''
StaticText 'That said, we hope to continue improving our documentation and provide a community of support for people using'
code ''
StaticText 'ffmpeg-python'
StaticText 'to do cool and exciting things.'
heading 'Contributing'
[40] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
paragraph ''
StaticText 'One of the best things you can do to help make'
code ''
StaticText 'ffmpeg-python'
StaticText 'better is to answer'
[87] link 'open questions', url='https://github.com/kkroening/ffmpeg-python/labels/question'
StaticText 'in the issue tracker. The questions that are answered will be tagged and incorporated into the documentation, examples, and other learning resources.'
paragraph ''
StaticText 'If you notice things that could be better in the documentation or overall development experience, please say so in the'
[88] link 'issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
StaticText '. And of course, feel free to report any bugs or submit feature requests.'
paragraph ''
StaticText "Pull requests are welcome as well, but it wouldn't hurt to touch base in the issue tracker or hop on the"
[89] link 'Matrix chat channel', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
StaticText 'first.'
paragraph ''
StaticText 'Anyone who fixes any of the'
[90] link 'open bugs', url='https://github.com/kkroening/ffmpeg-python/labels/bug'
StaticText 'or implements'
[91] link 'requested enhancements', url='https://github.com/kkroening/ffmpeg-python/labels/enhancement'
StaticText 'is a hero, but changes should include passing tests.'
heading 'Running tests'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git cd ffmpeg-python virtualenv venv . venv/bin/activate # (OS X / Linux) venv \\\\b in \\\\a ctivate # (Windows) pip install -e .[dev] pytest'
[41] button ''
heading 'Special thanks'
list ''
listitem ''
ListMarker 'โข'
[102] link 'Fabrice Bellard', url='https://bellard.org/'
listitem ''
ListMarker 'โข'
[103] link 'The FFmpeg team', url='https://ffmpeg.org/donations.html'
listitem ''
ListMarker 'โข'
[104] link 'Arne de Laat', url='https://github.com/153957'
listitem ''
ListMarker 'โข'
[105] link 'Davide Depau', url='https://github.com/depau'
listitem ''
ListMarker 'โข'
[106] link 'Dim', url='https://github.com/lloti'
listitem ''
ListMarker 'โข'
[107] link 'Noah Stier', url='https://github.com/noahstier'
heading 'Additional Resources'
list ''
listitem ''
ListMarker 'โข'
[108] link 'API Reference', url='https://kkroening.github.io/ffmpeg-python/'
listitem ''
ListMarker 'โข'
[109] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
listitem ''
ListMarker 'โข'
[110] link 'Filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
listitem ''
ListMarker 'โข'
[111] link 'FFmpeg Homepage', url='https://ffmpeg.org/'
listitem ''
ListMarker 'โข'
[112] link 'FFmpeg Documentation', url='https://ffmpeg.org/ffmpeg.html'
listitem ''
ListMarker 'โข'
[113] link 'FFmpeg Filters Documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
listitem ''
ListMarker 'โข'
[114] link 'Test cases', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/tests/test_ffmpeg.py'
listitem ''
ListMarker 'โข'
[115] link 'Issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
listitem ''
ListMarker 'โข'
StaticText 'Matrix Chat:'
[116] link '#ffmpeg-python:matrix.org', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
The goal is to star this repository (the third most starred). The star button is visible and ready to click. After starring, the next steps will be to return to the Explore โ Projects โ Starred page and star the remaining six repositories.
click('8')RootWebArea 'Karl Kroening / ffmpeg-python ยท GitLab', focused, url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[42] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[43] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[44] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[45] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[46] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[47] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[48] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[49] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'ffmpeg-python'
[50] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
StaticText 'F'
listitem ''
[51] link 'Project information', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/activity'
listitem ''
[52] link 'Repository', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master'
listitem ''
[53] link 'Issues', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues'
StaticText '402'
listitem ''
[54] link 'Merge requests', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests'
StaticText '34'
listitem ''
[55] link 'CI/CD', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/pipelines'
listitem ''
[56] link 'Deployments', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/environments'
listitem ''
[57] link 'Packages and registries', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/packages'
listitem ''
[58] link 'Monitor', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/incidents'
listitem ''
[59] link 'Analytics', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/value_stream_analytics'
listitem ''
[60] link 'Wiki', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/wikis/home'
listitem ''
[61] link 'Snippets', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[62] link 'Karl Kroening', url='http://127.0.0.1:8023/kkroening'
listitem ''
[63] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
main ''
StaticText 'F'
heading 'ffmpeg-python'
StaticText 'Project ID: 133'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar', focused
[9] link '52', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks'
navigation ''
list ''
listitem ''
[92] link '458 Commits', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commits/master'
[117] strong ''
StaticText '458'
listitem ''
[93] link '45 Branches', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/branches'
[118] strong ''
StaticText '45'
listitem ''
[94] link '14 Tags', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tags'
[119] strong ''
StaticText '14'
listitem ''
[95] strong ''
StaticText '15.1 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Python bindings for FFmpeg - with complex filtering support'
image 'user avatar', url='https://www.gravatar.com/avatar/a8ce807b69e77f46c8b15b86ae1839c5?s=80&d=identicon'
[12] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
StaticText 'Christian Clauss authored'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'df129c7b'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[96] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/'
listitem ''
StaticText '/'
[97] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/find_file/master'
[16] link 'Web IDE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#'
list ''
listitem ''
[64] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
listitem ''
[65] link 'Apache License 2.0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github/workflows'
[120] link '.github/workflows', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/.github'
cell 'Upgrade GitHub Actions again (#679)'
[121] link 'Upgrade GitHub Actions again (#679)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/35886c970c7b3a757115f5a7b6fd1753e64832ce'
cell '3 years ago'
time 'Jul 12, 2022 3:02am GMT+0600'
StaticText '3 years ago'
row ''
cell 'doc'
[122] link 'doc', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/doc'
cell 'Fix `heigth` -> `height` typo (#596)'
[123] link 'Fix `heigth` -> `height` typo (#596)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fc41f4aa84084bfae6e2db6a5a1fe7949bb28bae'
cell '3 years ago'
time 'Mar 7, 2022 3:55pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'examples'
[124] link 'examples', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/examples'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[125] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'ffmpeg'
[126] link 'ffmpeg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/ffmpeg'
cell "Let's implicitly fix a typo (#681)"
[127] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
cell '3 years ago'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[128] link '.gitignore', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/.gitignore'
cell 'Add input/output support in `run` command; update docs'
[129] link 'Add input/output support in `run` command; update docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/ac57e2df132d4ea05dacee642de74d057bd98f5d'
cell '7 years ago'
time 'May 20, 2018 2:13pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'LICENSE'
[130] link 'LICENSE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
cell 'Update LICENSE with full license text'
[131] link 'Update LICENSE with full license text', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/221f57428d7ff3bb39ee635bbeb101a68efdbf53'
cell '7 years ago'
time 'Jan 10, 2018 4:41pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'MANIFEST'
[132] link 'MANIFEST', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/MANIFEST'
cell 'Update readme; bump version; ignore errors in `git rev-parse`'
[133] link 'Update readme; bump version; ignore errors in `git rev-parse`', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f32ec43b61f4453997bf0ae630d8b7a7fce98b18'
cell '8 years ago'
time 'May 28, 2017 2:42pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README'
[134] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README'
cell 'Update readme filename'
[135] link 'Update readme filename', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/708513b912fdb0ec443d51566edcb91a1634a470'
cell '8 years ago'
time 'May 14, 2017 4:23pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[136] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
cell 'Add FFmpeg installation instructions (#642)'
[137] link 'Add FFmpeg installation instructions (#642)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/cb9d400467014dd371ff5bb24d86be3fa6df8a2b'
cell '3 years ago'
time 'Mar 7, 2022 3:19pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'pyproject.toml'
[138] link 'pyproject.toml', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pyproject.toml'
cell 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)'
[139] link 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fd1da13f110ad4d20ab768bfafaeef36dce2862f'
cell '3 years ago'
time 'Mar 7, 2022 3:24am GMT+0600'
StaticText '3 years ago'
row ''
cell 'pytest.ini'
[140] link 'pytest.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pytest.ini'
cell 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs'
[141] link 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f3b32d6d41d65701aa65bae951518e1ec387b483'
cell '8 years ago'
time 'May 14, 2017 4:18pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'requirements.txt'
[142] link 'requirements.txt', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/requirements.txt'
cell 'Use Black formatter'
[143] link 'Use Black formatter', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/8ea0f4ca4b3531f90d141b1eea9db73d98ff62b9'
cell '6 years ago'
time 'Jun 3, 2019 3:03pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'setup.cfg'
[144] link 'setup.cfg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.cfg'
cell 'Make `setup.py test` work'
[145] link 'Make `setup.py test` work', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6960751de0b14e5a3640fe16d91f44008397026d'
cell '8 years ago'
time 'Jun 14, 2017 11:29am GMT+0600'
StaticText '8 years ago'
row ''
cell 'setup.py'
[146] link 'setup.py', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.py'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[147] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'tox.ini'
[148] link 'tox.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/tox.ini'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[149] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
[66] strong ''
StaticText 'README.md'
heading 'ffmpeg-python: Python bindings for FFmpeg'
paragraph ''
[67] link 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml'
image 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg'
[23] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
heading 'Overview'
paragraph ''
StaticText 'There are tons of Python FFmpeg wrappers out there but they seem to lack complex filter support.'
code ''
StaticText 'ffmpeg-python'
StaticText 'works well for simple as well as complex signal graphs.'
heading 'Quickstart'
paragraph ''
StaticText 'Flip a video horizontally:'
code ''
StaticText "import ffmpeg stream = ffmpeg . input ( 'input.mp4' ) stream = ffmpeg . hflip ( stream ) stream = ffmpeg . output ( stream , 'output.mp4' ) ffmpeg . run ( stream )"
[24] button ''
paragraph ''
StaticText 'Or if you prefer a fluent interface:'
code ''
StaticText "import ffmpeg ( ffmpeg . input ( 'input.mp4' ) . hflip () . output ( 'output.mp4' ) . run () )"
[25] button ''
heading 'API reference'
[68] link 'API reference', url='https://kkroening.github.io/ffmpeg-python/'
heading 'Complex filter graphs'
paragraph ''
StaticText 'FFmpeg is extremely powerful, but its command-line interface gets really complicated rather quickly - especially when working with signal graphs and doing anything more than trivial.'
paragraph ''
StaticText 'Take for example a signal graph that looks like this:'
paragraph ''
[69] link 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
image 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
paragraph ''
StaticText 'The corresponding command-line arguments are pretty gnarly:'
code ''
StaticText 'ffmpeg -i input.mp4 -i overlay.png -filter_complex "[0]trim=start_frame=10:end_frame=20[v0]; \\\\ [0]trim=start_frame=30:end_frame=40[v1];[v0][v1]concat=n=2[v2];[1]hflip[v3]; \\\\ [v2][v3]overlay=eof_action=repeat[v4];[v4]drawbox=50:50:120:120:red:t=5[v5]" \\\\ -map [ v5] output.mp4'
[26] button ''
paragraph ''
StaticText "Maybe this looks great to you, but if you're not an FFmpeg command-line expert, it probably looks alien."
paragraph ''
StaticText "If you're like me and find Python to be powerful and readable, it's easier with"
code ''
StaticText 'ffmpeg-python'
StaticText ':'
code ''
StaticText "import ffmpeg in_file = ffmpeg . input ( 'input.mp4' ) overlay_file = ffmpeg . input ( 'overlay.png' ) ( ffmpeg . concat ( in_file . trim ( start_frame = 10 , end_frame = 20 ), in_file . trim ( start_frame = 30 , end_frame = 40 ), ) . overlay ( overlay_file . hflip ()) . drawbox ( 50 , 50 , 120 , 120 , color = 'red' , thickness = 5 ) . output ( 'out.mp4' ) . run () )"
[27] button ''
paragraph ''
code ''
StaticText 'ffmpeg-python'
StaticText 'takes care of running'
code ''
StaticText 'ffmpeg'
StaticText 'with the command-line arguments that correspond to the above filter diagram, in familiar Python terms.'
[28] link 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
image 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
paragraph ''
StaticText 'Real-world signal graphs can get a heck of a lot more complex, but'
code ''
StaticText 'ffmpeg-python'
StaticText 'handles arbitrarily large (directed-acyclic) signal graphs.'
heading 'Installation'
heading 'Installing ffmpeg-python'
code ''
StaticText 'ffmpeg-python'
paragraph ''
StaticText 'The latest version of'
code ''
StaticText 'ffmpeg-python'
StaticText 'can be acquired via a typical pip install:'
code ''
StaticText 'pip install ffmpeg-python'
[29] button ''
paragraph ''
StaticText 'Or the source can be cloned and installed from locally:'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git pip install -e ./ffmpeg-python'
[30] button ''
blockquote ''
paragraph ''
[98] strong ''
StaticText 'Note'
StaticText ':'
code ''
StaticText 'ffmpeg-python'
StaticText 'makes no attempt to download/install FFmpeg, as'
code ''
StaticText 'ffmpeg-python'
StaticText 'is merely a pure-Python wrapper - whereas FFmpeg installation is platform-dependent/environment-specific, and is thus the responsibility of the user, as described below.'
heading 'Installing FFmpeg'
paragraph ''
StaticText 'Before using'
code ''
StaticText 'ffmpeg-python'
StaticText ', FFmpeg must be installed and accessible via the'
code ''
StaticText '$PATH'
StaticText 'environment variable.'
paragraph ''
StaticText 'There are a variety of ways to install FFmpeg, such as the'
[70] link 'official download links', url='https://ffmpeg.org/download.html'
StaticText ', or using your package manager of choice (e.g.'
code ''
StaticText 'sudo apt install ffmpeg'
StaticText 'on Debian/Ubuntu,'
code ''
StaticText 'brew install ffmpeg'
StaticText 'on OS X, etc.).'
paragraph ''
StaticText 'Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the'
code ''
StaticText 'ffmpeg'
StaticText 'command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):'
code ''
StaticText '$ ffmpeg ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)'
[31] button ''
blockquote ''
paragraph ''
[99] strong ''
StaticText 'Note'
StaticText ': The actual version information displayed here may vary from one system to another; but if a message such as'
code ''
StaticText 'ffmpeg: command not found'
StaticText 'appears instead of the version information, FFmpeg is not properly installed.'
heading 'Examples'
[71] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
paragraph ''
StaticText 'When in doubt, take a look at the'
[72] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText "to see if there's something that's close to whatever you're trying to do."
paragraph ''
StaticText 'Here are a few:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[150] link 'Convert video to numpy array', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-video-to-numpy-array'
listitem ''
ListMarker 'โข'
paragraph ''
[151] link 'Generate thumbnail for video', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#generate-thumbnail-for-video'
listitem ''
ListMarker 'โข'
paragraph ''
[152] link 'Read raw PCM audio via pipe', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-sound-to-raw-pcm-audio'
listitem ''
ListMarker 'โข'
paragraph ''
[153] link 'JupyterLab/Notebook stream editor', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#jupyter-stream-editor'
[32] link 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
image 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
list ''
listitem ''
ListMarker 'โข'
[100] link 'Tensorflow/DeepDream streaming', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#tensorflow-streaming'
[33] link 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
image 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
paragraph ''
StaticText 'See the'
[73] link 'Examples README', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText 'for additional examples.'
heading 'Custom Filters'
paragraph ''
StaticText "Don't see the filter you're looking for? While"
code ''
StaticText 'ffmpeg-python'
StaticText 'includes shorthand notation for some of the most commonly used filters (such as'
code ''
StaticText 'concat'
StaticText '), all filters can be referenced via the'
code ''
StaticText '.filter'
StaticText 'operator:'
code ''
StaticText "stream = ffmpeg . input ( 'dummy.mp4' ) stream = ffmpeg . filter ( stream , 'fps' , fps = 25 , round = 'up' ) stream = ffmpeg . output ( stream , 'dummy2.mp4' ) ffmpeg . run ( stream )"
[34] button ''
paragraph ''
StaticText 'Or fluently:'
code ''
StaticText "( ffmpeg . input ( 'dummy.mp4' ) . filter ( 'fps' , fps = 25 , round = 'up' ) . output ( 'dummy2.mp4' ) . run () )"
[35] button ''
paragraph ''
[74] strong ''
StaticText 'Special option names:'
paragraph ''
StaticText 'Arguments with special names such as'
code ''
StaticText '-qscale:v'
StaticText '(variable bitrate),'
code ''
StaticText '-b:v'
StaticText '(constant bitrate), etc. can be specified as a keyword-args dictionary as follows:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . output ( 'out.mp4' , ** { 'qscale:v' : 3 }) . run () )"
[36] button ''
paragraph ''
[75] strong ''
StaticText 'Multiple inputs:'
paragraph ''
StaticText 'Filters that take multiple input streams can be used by passing the input streams as an array to'
code ''
StaticText 'ffmpeg.filter'
StaticText ':'
code ''
StaticText "main = ffmpeg . input ( 'main.mp4' ) logo = ffmpeg . input ( 'logo.png' ) ( ffmpeg . filter ([ main , logo ], 'overlay' , 10 , 10 ) . output ( 'out.mp4' ) . run () )"
[37] button ''
paragraph ''
[76] strong ''
StaticText 'Multiple outputs:'
paragraph ''
StaticText 'Filters that produce multiple outputs can be used with'
code ''
StaticText '.filter_multi_output'
StaticText ':'
code ''
StaticText "split = ( ffmpeg . input ( 'in.mp4' ) . filter_multi_output ( 'split' ) # or `.split()` ) ( ffmpeg . concat ( split [ 0 ], split [ 1 ]. reverse ()) . output ( 'out.mp4' ) . run () )"
[38] button ''
paragraph ''
StaticText '(In this particular case,'
code ''
StaticText '.split()'
StaticText 'is the equivalent shorthand, but the general approach works for other multi-output filters)'
paragraph ''
[77] strong ''
StaticText 'String expressions:'
paragraph ''
StaticText 'Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . filter ( 'crop' , 'in_w-2*10' , 'in_h-2*20' ) . input ( 'out.mp4' ) )"
[39] button ''
paragraph ''
StaticText 'When in doubt, refer to the'
[78] link 'existing filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
StaticText ','
[79] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText ', and/or the'
[80] link 'official ffmpeg documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
StaticText '.'
heading 'Frequently asked questions'
paragraph ''
[81] strong ''
StaticText 'Why do I get an import/attribute/etc. error from'
code ''
StaticText 'import ffmpeg'
StaticText '?'
paragraph ''
StaticText 'Make sure you ran'
code ''
StaticText 'pip install ffmpeg-python'
StaticText 'and'
emphasis ''
[101] strong ''
StaticText 'not'
StaticText ''
code ''
StaticText 'pip install ffmpeg'
StaticText '(wrong) or'
code ''
StaticText 'pip install python-ffmpeg'
StaticText '(also wrong).'
paragraph ''
[82] strong ''
StaticText 'Why did my audio stream get dropped?'
paragraph ''
StaticText 'Some ffmpeg filters drop audio streams, and care must be taken to preserve the audio in the final output. The'
code ''
StaticText '.audio'
StaticText 'and'
code ''
StaticText '.video'
StaticText 'operators can be used to reference the audio/video portions of a stream so that they can be processed separately and then re-combined later in the pipeline.'
paragraph ''
StaticText 'This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the way while users may refer to the official ffmpeg documentation as to why certain filters drop audio.'
paragraph ''
StaticText 'As usual, take a look at the'
[83] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline'
StaticText '('
emphasis ''
StaticText 'Audio/video pipeline'
StaticText 'in particular).'
paragraph ''
[84] strong ''
StaticText 'How can I find out the used command line arguments?'
paragraph ''
StaticText 'You can run'
code ''
StaticText 'stream.get_args()'
StaticText 'before'
code ''
StaticText 'stream.run()'
StaticText 'to retrieve the command line arguments that will be passed to'
code ''
StaticText 'ffmpeg'
StaticText '. You can also run'
code ''
StaticText 'stream.compile()'
StaticText 'that also includes the'
code ''
StaticText 'ffmpeg'
StaticText 'executable as the first argument.'
paragraph ''
[85] strong ''
StaticText 'How do I do XYZ?'
paragraph ''
StaticText 'Take a look at each of the links in the'
[86] link 'Additional Resources', url='https://kkroening.github.io/ffmpeg-python/'
StaticText "section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far."
paragraph ''
StaticText 'Issues not directly related to'
code ''
StaticText 'ffmpeg-python'
StaticText "or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed."
paragraph ''
StaticText 'That said, we hope to continue improving our documentation and provide a community of support for people using'
code ''
StaticText 'ffmpeg-python'
StaticText 'to do cool and exciting things.'
heading 'Contributing'
[40] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
paragraph ''
StaticText 'One of the best things you can do to help make'
code ''
StaticText 'ffmpeg-python'
StaticText 'better is to answer'
[87] link 'open questions', url='https://github.com/kkroening/ffmpeg-python/labels/question'
StaticText 'in the issue tracker. The questions that are answered will be tagged and incorporated into the documentation, examples, and other learning resources.'
paragraph ''
StaticText 'If you notice things that could be better in the documentation or overall development experience, please say so in the'
[88] link 'issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
StaticText '. And of course, feel free to report any bugs or submit feature requests.'
paragraph ''
StaticText "Pull requests are welcome as well, but it wouldn't hurt to touch base in the issue tracker or hop on the"
[89] link 'Matrix chat channel', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
StaticText 'first.'
paragraph ''
StaticText 'Anyone who fixes any of the'
[90] link 'open bugs', url='https://github.com/kkroening/ffmpeg-python/labels/bug'
StaticText 'or implements'
[91] link 'requested enhancements', url='https://github.com/kkroening/ffmpeg-python/labels/enhancement'
StaticText 'is a hero, but changes should include passing tests.'
heading 'Running tests'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git cd ffmpeg-python virtualenv venv . venv/bin/activate # (OS X / Linux) venv \\\\b in \\\\a ctivate # (Windows) pip install -e .[dev] pytest'
[41] button ''
heading 'Special thanks'
list ''
listitem ''
ListMarker 'โข'
[102] link 'Fabrice Bellard', url='https://bellard.org/'
listitem ''
ListMarker 'โข'
[103] link 'The FFmpeg team', url='https://ffmpeg.org/donations.html'
listitem ''
ListMarker 'โข'
[104] link 'Arne de Laat', url='https://github.com/153957'
listitem ''
ListMarker 'โข'
[105] link 'Davide Depau', url='https://github.com/depau'
listitem ''
ListMarker 'โข'
[106] link 'Dim', url='https://github.com/lloti'
listitem ''
ListMarker 'โข'
[107] link 'Noah Stier', url='https://github.com/noahstier'
heading 'Additional Resources'
list ''
listitem ''
ListMarker 'โข'
[108] link 'API Reference', url='https://kkroening.github.io/ffmpeg-python/'
listitem ''
ListMarker 'โข'
[109] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
listitem ''
ListMarker 'โข'
[110] link 'Filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
listitem ''
ListMarker 'โข'
[111] link 'FFmpeg Homepage', url='https://ffmpeg.org/'
listitem ''
ListMarker 'โข'
[112] link 'FFmpeg Documentation', url='https://ffmpeg.org/ffmpeg.html'
listitem ''
ListMarker 'โข'
[113] link 'FFmpeg Filters Documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
listitem ''
ListMarker 'โข'
[114] link 'Test cases', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/tests/test_ffmpeg.py'
listitem ''
ListMarker 'โข'
[115] link 'Issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
listitem ''
ListMarker 'โข'
StaticText 'Matrix Chat:'
[116] link '#ffmpeg-python:matrix.org', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
The goal is to star the top eight mostโstarred repositories. The first two (Umano and Meta) are already starred. We have just opened KarlโฏKroeningโs repo and identified the star button. Clicking this button will star the repository, after which we can return to the list page to star the remaining six.
click('8')RootWebArea 'Karl Kroening / ffmpeg-python ยท GitLab', focused, url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[42] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[43] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[44] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[45] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[46] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[47] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[48] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[49] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'ffmpeg-python'
[50] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
StaticText 'F'
listitem ''
[51] link 'Project information', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/activity'
listitem ''
[52] link 'Repository', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master'
listitem ''
[53] link 'Issues', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues'
StaticText '402'
listitem ''
[54] link 'Merge requests', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests'
StaticText '34'
listitem ''
[55] link 'CI/CD', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/pipelines'
listitem ''
[56] link 'Deployments', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/environments'
listitem ''
[57] link 'Packages and registries', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/packages'
listitem ''
[58] link 'Monitor', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/incidents'
listitem ''
[59] link 'Analytics', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/value_stream_analytics'
listitem ''
[60] link 'Wiki', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/wikis/home'
listitem ''
[61] link 'Snippets', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[62] link 'Karl Kroening', url='http://127.0.0.1:8023/kkroening'
listitem ''
[63] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
main ''
StaticText 'F'
heading 'ffmpeg-python'
StaticText 'Project ID: 133'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Star', focused
[9] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks'
navigation ''
list ''
listitem ''
[92] link '458 Commits', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commits/master'
[117] strong ''
StaticText '458'
listitem ''
[93] link '45 Branches', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/branches'
[118] strong ''
StaticText '45'
listitem ''
[94] link '14 Tags', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tags'
[119] strong ''
StaticText '14'
listitem ''
[95] strong ''
StaticText '15.1 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Python bindings for FFmpeg - with complex filtering support'
image 'user avatar', url='https://www.gravatar.com/avatar/a8ce807b69e77f46c8b15b86ae1839c5?s=80&d=identicon'
[12] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
StaticText 'Christian Clauss authored'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'df129c7b'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[96] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/'
listitem ''
StaticText '/'
[97] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/find_file/master'
[16] link 'Web IDE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#'
list ''
listitem ''
[64] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
listitem ''
[65] link 'Apache License 2.0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github/workflows'
[120] link '.github/workflows', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/.github'
cell 'Upgrade GitHub Actions again (#679)'
[121] link 'Upgrade GitHub Actions again (#679)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/35886c970c7b3a757115f5a7b6fd1753e64832ce'
cell '3 years ago'
time 'Jul 12, 2022 3:02am GMT+0600'
StaticText '3 years ago'
row ''
cell 'doc'
[122] link 'doc', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/doc'
cell 'Fix `heigth` -> `height` typo (#596)'
[123] link 'Fix `heigth` -> `height` typo (#596)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fc41f4aa84084bfae6e2db6a5a1fe7949bb28bae'
cell '3 years ago'
time 'Mar 7, 2022 3:55pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'examples'
[124] link 'examples', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/examples'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[125] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'ffmpeg'
[126] link 'ffmpeg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/ffmpeg'
cell "Let's implicitly fix a typo (#681)"
[127] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
cell '3 years ago'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[128] link '.gitignore', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/.gitignore'
cell 'Add input/output support in `run` command; update docs'
[129] link 'Add input/output support in `run` command; update docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/ac57e2df132d4ea05dacee642de74d057bd98f5d'
cell '7 years ago'
time 'May 20, 2018 2:13pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'LICENSE'
[130] link 'LICENSE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
cell 'Update LICENSE with full license text'
[131] link 'Update LICENSE with full license text', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/221f57428d7ff3bb39ee635bbeb101a68efdbf53'
cell '7 years ago'
time 'Jan 10, 2018 4:41pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'MANIFEST'
[132] link 'MANIFEST', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/MANIFEST'
cell 'Update readme; bump version; ignore errors in `git rev-parse`'
[133] link 'Update readme; bump version; ignore errors in `git rev-parse`', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f32ec43b61f4453997bf0ae630d8b7a7fce98b18'
cell '8 years ago'
time 'May 28, 2017 2:42pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README'
[134] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README'
cell 'Update readme filename'
[135] link 'Update readme filename', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/708513b912fdb0ec443d51566edcb91a1634a470'
cell '8 years ago'
time 'May 14, 2017 4:23pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[136] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
cell 'Add FFmpeg installation instructions (#642)'
[137] link 'Add FFmpeg installation instructions (#642)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/cb9d400467014dd371ff5bb24d86be3fa6df8a2b'
cell '3 years ago'
time 'Mar 7, 2022 3:19pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'pyproject.toml'
[138] link 'pyproject.toml', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pyproject.toml'
cell 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)'
[139] link 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fd1da13f110ad4d20ab768bfafaeef36dce2862f'
cell '3 years ago'
time 'Mar 7, 2022 3:24am GMT+0600'
StaticText '3 years ago'
row ''
cell 'pytest.ini'
[140] link 'pytest.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pytest.ini'
cell 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs'
[141] link 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f3b32d6d41d65701aa65bae951518e1ec387b483'
cell '8 years ago'
time 'May 14, 2017 4:18pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'requirements.txt'
[142] link 'requirements.txt', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/requirements.txt'
cell 'Use Black formatter'
[143] link 'Use Black formatter', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/8ea0f4ca4b3531f90d141b1eea9db73d98ff62b9'
cell '6 years ago'
time 'Jun 3, 2019 3:03pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'setup.cfg'
[144] link 'setup.cfg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.cfg'
cell 'Make `setup.py test` work'
[145] link 'Make `setup.py test` work', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6960751de0b14e5a3640fe16d91f44008397026d'
cell '8 years ago'
time 'Jun 14, 2017 11:29am GMT+0600'
StaticText '8 years ago'
row ''
cell 'setup.py'
[146] link 'setup.py', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.py'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[147] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'tox.ini'
[148] link 'tox.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/tox.ini'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[149] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
[66] strong ''
StaticText 'README.md'
heading 'ffmpeg-python: Python bindings for FFmpeg'
paragraph ''
[67] link 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml'
image 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg'
[23] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
heading 'Overview'
paragraph ''
StaticText 'There are tons of Python FFmpeg wrappers out there but they seem to lack complex filter support.'
code ''
StaticText 'ffmpeg-python'
StaticText 'works well for simple as well as complex signal graphs.'
heading 'Quickstart'
paragraph ''
StaticText 'Flip a video horizontally:'
code ''
StaticText "import ffmpeg stream = ffmpeg . input ( 'input.mp4' ) stream = ffmpeg . hflip ( stream ) stream = ffmpeg . output ( stream , 'output.mp4' ) ffmpeg . run ( stream )"
[24] button ''
paragraph ''
StaticText 'Or if you prefer a fluent interface:'
code ''
StaticText "import ffmpeg ( ffmpeg . input ( 'input.mp4' ) . hflip () . output ( 'output.mp4' ) . run () )"
[25] button ''
heading 'API reference'
[68] link 'API reference', url='https://kkroening.github.io/ffmpeg-python/'
heading 'Complex filter graphs'
paragraph ''
StaticText 'FFmpeg is extremely powerful, but its command-line interface gets really complicated rather quickly - especially when working with signal graphs and doing anything more than trivial.'
paragraph ''
StaticText 'Take for example a signal graph that looks like this:'
paragraph ''
[69] link 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
image 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
paragraph ''
StaticText 'The corresponding command-line arguments are pretty gnarly:'
code ''
StaticText 'ffmpeg -i input.mp4 -i overlay.png -filter_complex "[0]trim=start_frame=10:end_frame=20[v0]; \\\\ [0]trim=start_frame=30:end_frame=40[v1];[v0][v1]concat=n=2[v2];[1]hflip[v3]; \\\\ [v2][v3]overlay=eof_action=repeat[v4];[v4]drawbox=50:50:120:120:red:t=5[v5]" \\\\ -map [ v5] output.mp4'
[26] button ''
paragraph ''
StaticText "Maybe this looks great to you, but if you're not an FFmpeg command-line expert, it probably looks alien."
paragraph ''
StaticText "If you're like me and find Python to be powerful and readable, it's easier with"
code ''
StaticText 'ffmpeg-python'
StaticText ':'
code ''
StaticText "import ffmpeg in_file = ffmpeg . input ( 'input.mp4' ) overlay_file = ffmpeg . input ( 'overlay.png' ) ( ffmpeg . concat ( in_file . trim ( start_frame = 10 , end_frame = 20 ), in_file . trim ( start_frame = 30 , end_frame = 40 ), ) . overlay ( overlay_file . hflip ()) . drawbox ( 50 , 50 , 120 , 120 , color = 'red' , thickness = 5 ) . output ( 'out.mp4' ) . run () )"
[27] button ''
paragraph ''
code ''
StaticText 'ffmpeg-python'
StaticText 'takes care of running'
code ''
StaticText 'ffmpeg'
StaticText 'with the command-line arguments that correspond to the above filter diagram, in familiar Python terms.'
[28] link 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
image 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
paragraph ''
StaticText 'Real-world signal graphs can get a heck of a lot more complex, but'
code ''
StaticText 'ffmpeg-python'
StaticText 'handles arbitrarily large (directed-acyclic) signal graphs.'
heading 'Installation'
heading 'Installing ffmpeg-python'
code ''
StaticText 'ffmpeg-python'
paragraph ''
StaticText 'The latest version of'
code ''
StaticText 'ffmpeg-python'
StaticText 'can be acquired via a typical pip install:'
code ''
StaticText 'pip install ffmpeg-python'
[29] button ''
paragraph ''
StaticText 'Or the source can be cloned and installed from locally:'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git pip install -e ./ffmpeg-python'
[30] button ''
blockquote ''
paragraph ''
[98] strong ''
StaticText 'Note'
StaticText ':'
code ''
StaticText 'ffmpeg-python'
StaticText 'makes no attempt to download/install FFmpeg, as'
code ''
StaticText 'ffmpeg-python'
StaticText 'is merely a pure-Python wrapper - whereas FFmpeg installation is platform-dependent/environment-specific, and is thus the responsibility of the user, as described below.'
heading 'Installing FFmpeg'
paragraph ''
StaticText 'Before using'
code ''
StaticText 'ffmpeg-python'
StaticText ', FFmpeg must be installed and accessible via the'
code ''
StaticText '$PATH'
StaticText 'environment variable.'
paragraph ''
StaticText 'There are a variety of ways to install FFmpeg, such as the'
[70] link 'official download links', url='https://ffmpeg.org/download.html'
StaticText ', or using your package manager of choice (e.g.'
code ''
StaticText 'sudo apt install ffmpeg'
StaticText 'on Debian/Ubuntu,'
code ''
StaticText 'brew install ffmpeg'
StaticText 'on OS X, etc.).'
paragraph ''
StaticText 'Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the'
code ''
StaticText 'ffmpeg'
StaticText 'command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):'
code ''
StaticText '$ ffmpeg ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)'
[31] button ''
blockquote ''
paragraph ''
[99] strong ''
StaticText 'Note'
StaticText ': The actual version information displayed here may vary from one system to another; but if a message such as'
code ''
StaticText 'ffmpeg: command not found'
StaticText 'appears instead of the version information, FFmpeg is not properly installed.'
heading 'Examples'
[71] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
paragraph ''
StaticText 'When in doubt, take a look at the'
[72] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText "to see if there's something that's close to whatever you're trying to do."
paragraph ''
StaticText 'Here are a few:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[150] link 'Convert video to numpy array', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-video-to-numpy-array'
listitem ''
ListMarker 'โข'
paragraph ''
[151] link 'Generate thumbnail for video', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#generate-thumbnail-for-video'
listitem ''
ListMarker 'โข'
paragraph ''
[152] link 'Read raw PCM audio via pipe', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-sound-to-raw-pcm-audio'
listitem ''
ListMarker 'โข'
paragraph ''
[153] link 'JupyterLab/Notebook stream editor', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#jupyter-stream-editor'
[32] link 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
image 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
list ''
listitem ''
ListMarker 'โข'
[100] link 'Tensorflow/DeepDream streaming', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#tensorflow-streaming'
[33] link 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
image 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
paragraph ''
StaticText 'See the'
[73] link 'Examples README', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText 'for additional examples.'
heading 'Custom Filters'
paragraph ''
StaticText "Don't see the filter you're looking for? While"
code ''
StaticText 'ffmpeg-python'
StaticText 'includes shorthand notation for some of the most commonly used filters (such as'
code ''
StaticText 'concat'
StaticText '), all filters can be referenced via the'
code ''
StaticText '.filter'
StaticText 'operator:'
code ''
StaticText "stream = ffmpeg . input ( 'dummy.mp4' ) stream = ffmpeg . filter ( stream , 'fps' , fps = 25 , round = 'up' ) stream = ffmpeg . output ( stream , 'dummy2.mp4' ) ffmpeg . run ( stream )"
[34] button ''
paragraph ''
StaticText 'Or fluently:'
code ''
StaticText "( ffmpeg . input ( 'dummy.mp4' ) . filter ( 'fps' , fps = 25 , round = 'up' ) . output ( 'dummy2.mp4' ) . run () )"
[35] button ''
paragraph ''
[74] strong ''
StaticText 'Special option names:'
paragraph ''
StaticText 'Arguments with special names such as'
code ''
StaticText '-qscale:v'
StaticText '(variable bitrate),'
code ''
StaticText '-b:v'
StaticText '(constant bitrate), etc. can be specified as a keyword-args dictionary as follows:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . output ( 'out.mp4' , ** { 'qscale:v' : 3 }) . run () )"
[36] button ''
paragraph ''
[75] strong ''
StaticText 'Multiple inputs:'
paragraph ''
StaticText 'Filters that take multiple input streams can be used by passing the input streams as an array to'
code ''
StaticText 'ffmpeg.filter'
StaticText ':'
code ''
StaticText "main = ffmpeg . input ( 'main.mp4' ) logo = ffmpeg . input ( 'logo.png' ) ( ffmpeg . filter ([ main , logo ], 'overlay' , 10 , 10 ) . output ( 'out.mp4' ) . run () )"
[37] button ''
paragraph ''
[76] strong ''
StaticText 'Multiple outputs:'
paragraph ''
StaticText 'Filters that produce multiple outputs can be used with'
code ''
StaticText '.filter_multi_output'
StaticText ':'
code ''
StaticText "split = ( ffmpeg . input ( 'in.mp4' ) . filter_multi_output ( 'split' ) # or `.split()` ) ( ffmpeg . concat ( split [ 0 ], split [ 1 ]. reverse ()) . output ( 'out.mp4' ) . run () )"
[38] button ''
paragraph ''
StaticText '(In this particular case,'
code ''
StaticText '.split()'
StaticText 'is the equivalent shorthand, but the general approach works for other multi-output filters)'
paragraph ''
[77] strong ''
StaticText 'String expressions:'
paragraph ''
StaticText 'Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . filter ( 'crop' , 'in_w-2*10' , 'in_h-2*20' ) . input ( 'out.mp4' ) )"
[39] button ''
paragraph ''
StaticText 'When in doubt, refer to the'
[78] link 'existing filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
StaticText ','
[79] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText ', and/or the'
[80] link 'official ffmpeg documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
StaticText '.'
heading 'Frequently asked questions'
paragraph ''
[81] strong ''
StaticText 'Why do I get an import/attribute/etc. error from'
code ''
StaticText 'import ffmpeg'
StaticText '?'
paragraph ''
StaticText 'Make sure you ran'
code ''
StaticText 'pip install ffmpeg-python'
StaticText 'and'
emphasis ''
[101] strong ''
StaticText 'not'
StaticText ''
code ''
StaticText 'pip install ffmpeg'
StaticText '(wrong) or'
code ''
StaticText 'pip install python-ffmpeg'
StaticText '(also wrong).'
paragraph ''
[82] strong ''
StaticText 'Why did my audio stream get dropped?'
paragraph ''
StaticText 'Some ffmpeg filters drop audio streams, and care must be taken to preserve the audio in the final output. The'
code ''
StaticText '.audio'
StaticText 'and'
code ''
StaticText '.video'
StaticText 'operators can be used to reference the audio/video portions of a stream so that they can be processed separately and then re-combined later in the pipeline.'
paragraph ''
StaticText 'This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the way while users may refer to the official ffmpeg documentation as to why certain filters drop audio.'
paragraph ''
StaticText 'As usual, take a look at the'
[83] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline'
StaticText '('
emphasis ''
StaticText 'Audio/video pipeline'
StaticText 'in particular).'
paragraph ''
[84] strong ''
StaticText 'How can I find out the used command line arguments?'
paragraph ''
StaticText 'You can run'
code ''
StaticText 'stream.get_args()'
StaticText 'before'
code ''
StaticText 'stream.run()'
StaticText 'to retrieve the command line arguments that will be passed to'
code ''
StaticText 'ffmpeg'
StaticText '. You can also run'
code ''
StaticText 'stream.compile()'
StaticText 'that also includes the'
code ''
StaticText 'ffmpeg'
StaticText 'executable as the first argument.'
paragraph ''
[85] strong ''
StaticText 'How do I do XYZ?'
paragraph ''
StaticText 'Take a look at each of the links in the'
[86] link 'Additional Resources', url='https://kkroening.github.io/ffmpeg-python/'
StaticText "section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far."
paragraph ''
StaticText 'Issues not directly related to'
code ''
StaticText 'ffmpeg-python'
StaticText "or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed."
paragraph ''
StaticText 'That said, we hope to continue improving our documentation and provide a community of support for people using'
code ''
StaticText 'ffmpeg-python'
StaticText 'to do cool and exciting things.'
heading 'Contributing'
[40] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
paragraph ''
StaticText 'One of the best things you can do to help make'
code ''
StaticText 'ffmpeg-python'
StaticText 'better is to answer'
[87] link 'open questions', url='https://github.com/kkroening/ffmpeg-python/labels/question'
StaticText 'in the issue tracker. The questions that are answered will be tagged and incorporated into the documentation, examples, and other learning resources.'
paragraph ''
StaticText 'If you notice things that could be better in the documentation or overall development experience, please say so in the'
[88] link 'issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
StaticText '. And of course, feel free to report any bugs or submit feature requests.'
paragraph ''
StaticText "Pull requests are welcome as well, but it wouldn't hurt to touch base in the issue tracker or hop on the"
[89] link 'Matrix chat channel', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
StaticText 'first.'
paragraph ''
StaticText 'Anyone who fixes any of the'
[90] link 'open bugs', url='https://github.com/kkroening/ffmpeg-python/labels/bug'
StaticText 'or implements'
[91] link 'requested enhancements', url='https://github.com/kkroening/ffmpeg-python/labels/enhancement'
StaticText 'is a hero, but changes should include passing tests.'
heading 'Running tests'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git cd ffmpeg-python virtualenv venv . venv/bin/activate # (OS X / Linux) venv \\\\b in \\\\a ctivate # (Windows) pip install -e .[dev] pytest'
[41] button ''
heading 'Special thanks'
list ''
listitem ''
ListMarker 'โข'
[102] link 'Fabrice Bellard', url='https://bellard.org/'
listitem ''
ListMarker 'โข'
[103] link 'The FFmpeg team', url='https://ffmpeg.org/donations.html'
listitem ''
ListMarker 'โข'
[104] link 'Arne de Laat', url='https://github.com/153957'
listitem ''
ListMarker 'โข'
[105] link 'Davide Depau', url='https://github.com/depau'
listitem ''
ListMarker 'โข'
[106] link 'Dim', url='https://github.com/lloti'
listitem ''
ListMarker 'โข'
[107] link 'Noah Stier', url='https://github.com/noahstier'
heading 'Additional Resources'
list ''
listitem ''
ListMarker 'โข'
[108] link 'API Reference', url='https://kkroening.github.io/ffmpeg-python/'
listitem ''
ListMarker 'โข'
[109] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
listitem ''
ListMarker 'โข'
[110] link 'Filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
listitem ''
ListMarker 'โข'
[111] link 'FFmpeg Homepage', url='https://ffmpeg.org/'
listitem ''
ListMarker 'โข'
[112] link 'FFmpeg Documentation', url='https://ffmpeg.org/ffmpeg.html'
listitem ''
ListMarker 'โข'
[113] link 'FFmpeg Filters Documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
listitem ''
ListMarker 'โข'
[114] link 'Test cases', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/tests/test_ffmpeg.py'
listitem ''
ListMarker 'โข'
[115] link 'Issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
listitem ''
ListMarker 'โข'
StaticText 'Matrix Chat:'
[116] link '#ffmpeg-python:matrix.org', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
To satisfy the goal of starring the top eight most-starred repositories, we must star this repository first. Clicking the star button will change its state to โUnstarโ and mark the repository as starred.
click('8')RootWebArea 'Karl Kroening / ffmpeg-python ยท GitLab', focused, url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[42] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[43] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[44] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[45] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[46] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[47] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[48] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[49] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'ffmpeg-python'
[50] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
StaticText 'F'
listitem ''
[51] link 'Project information', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/activity'
listitem ''
[52] link 'Repository', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master'
listitem ''
[53] link 'Issues', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues'
StaticText '402'
listitem ''
[54] link 'Merge requests', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests'
StaticText '34'
listitem ''
[55] link 'CI/CD', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/pipelines'
listitem ''
[56] link 'Deployments', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/environments'
listitem ''
[57] link 'Packages and registries', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/packages'
listitem ''
[58] link 'Monitor', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/incidents'
listitem ''
[59] link 'Analytics', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/value_stream_analytics'
listitem ''
[60] link 'Wiki', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/wikis/home'
listitem ''
[61] link 'Snippets', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[62] link 'Karl Kroening', url='http://127.0.0.1:8023/kkroening'
listitem ''
[63] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
main ''
StaticText 'F'
heading 'ffmpeg-python'
StaticText 'Project ID: 133'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar', focused
[9] link '52', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks'
navigation ''
list ''
listitem ''
[92] link '458 Commits', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commits/master'
[117] strong ''
StaticText '458'
listitem ''
[93] link '45 Branches', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/branches'
[118] strong ''
StaticText '45'
listitem ''
[94] link '14 Tags', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tags'
[119] strong ''
StaticText '14'
listitem ''
[95] strong ''
StaticText '15.1 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Python bindings for FFmpeg - with complex filtering support'
image 'user avatar', url='https://www.gravatar.com/avatar/a8ce807b69e77f46c8b15b86ae1839c5?s=80&d=identicon'
[12] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
StaticText 'Christian Clauss authored'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'df129c7b'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[96] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/'
listitem ''
StaticText '/'
[97] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/find_file/master'
[16] link 'Web IDE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#'
list ''
listitem ''
[64] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
listitem ''
[65] link 'Apache License 2.0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github/workflows'
[120] link '.github/workflows', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/.github'
cell 'Upgrade GitHub Actions again (#679)'
[121] link 'Upgrade GitHub Actions again (#679)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/35886c970c7b3a757115f5a7b6fd1753e64832ce'
cell '3 years ago'
time 'Jul 12, 2022 3:02am GMT+0600'
StaticText '3 years ago'
row ''
cell 'doc'
[122] link 'doc', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/doc'
cell 'Fix `heigth` -> `height` typo (#596)'
[123] link 'Fix `heigth` -> `height` typo (#596)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fc41f4aa84084bfae6e2db6a5a1fe7949bb28bae'
cell '3 years ago'
time 'Mar 7, 2022 3:55pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'examples'
[124] link 'examples', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/examples'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[125] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'ffmpeg'
[126] link 'ffmpeg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/ffmpeg'
cell "Let's implicitly fix a typo (#681)"
[127] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
cell '3 years ago'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[128] link '.gitignore', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/.gitignore'
cell 'Add input/output support in `run` command; update docs'
[129] link 'Add input/output support in `run` command; update docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/ac57e2df132d4ea05dacee642de74d057bd98f5d'
cell '7 years ago'
time 'May 20, 2018 2:13pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'LICENSE'
[130] link 'LICENSE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
cell 'Update LICENSE with full license text'
[131] link 'Update LICENSE with full license text', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/221f57428d7ff3bb39ee635bbeb101a68efdbf53'
cell '7 years ago'
time 'Jan 10, 2018 4:41pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'MANIFEST'
[132] link 'MANIFEST', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/MANIFEST'
cell 'Update readme; bump version; ignore errors in `git rev-parse`'
[133] link 'Update readme; bump version; ignore errors in `git rev-parse`', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f32ec43b61f4453997bf0ae630d8b7a7fce98b18'
cell '8 years ago'
time 'May 28, 2017 2:42pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README'
[134] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README'
cell 'Update readme filename'
[135] link 'Update readme filename', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/708513b912fdb0ec443d51566edcb91a1634a470'
cell '8 years ago'
time 'May 14, 2017 4:23pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[136] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
cell 'Add FFmpeg installation instructions (#642)'
[137] link 'Add FFmpeg installation instructions (#642)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/cb9d400467014dd371ff5bb24d86be3fa6df8a2b'
cell '3 years ago'
time 'Mar 7, 2022 3:19pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'pyproject.toml'
[138] link 'pyproject.toml', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pyproject.toml'
cell 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)'
[139] link 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fd1da13f110ad4d20ab768bfafaeef36dce2862f'
cell '3 years ago'
time 'Mar 7, 2022 3:24am GMT+0600'
StaticText '3 years ago'
row ''
cell 'pytest.ini'
[140] link 'pytest.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pytest.ini'
cell 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs'
[141] link 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f3b32d6d41d65701aa65bae951518e1ec387b483'
cell '8 years ago'
time 'May 14, 2017 4:18pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'requirements.txt'
[142] link 'requirements.txt', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/requirements.txt'
cell 'Use Black formatter'
[143] link 'Use Black formatter', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/8ea0f4ca4b3531f90d141b1eea9db73d98ff62b9'
cell '6 years ago'
time 'Jun 3, 2019 3:03pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'setup.cfg'
[144] link 'setup.cfg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.cfg'
cell 'Make `setup.py test` work'
[145] link 'Make `setup.py test` work', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6960751de0b14e5a3640fe16d91f44008397026d'
cell '8 years ago'
time 'Jun 14, 2017 11:29am GMT+0600'
StaticText '8 years ago'
row ''
cell 'setup.py'
[146] link 'setup.py', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.py'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[147] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'tox.ini'
[148] link 'tox.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/tox.ini'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[149] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
[66] strong ''
StaticText 'README.md'
heading 'ffmpeg-python: Python bindings for FFmpeg'
paragraph ''
[67] link 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml'
image 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg'
[23] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
heading 'Overview'
paragraph ''
StaticText 'There are tons of Python FFmpeg wrappers out there but they seem to lack complex filter support.'
code ''
StaticText 'ffmpeg-python'
StaticText 'works well for simple as well as complex signal graphs.'
heading 'Quickstart'
paragraph ''
StaticText 'Flip a video horizontally:'
code ''
StaticText "import ffmpeg stream = ffmpeg . input ( 'input.mp4' ) stream = ffmpeg . hflip ( stream ) stream = ffmpeg . output ( stream , 'output.mp4' ) ffmpeg . run ( stream )"
[24] button ''
paragraph ''
StaticText 'Or if you prefer a fluent interface:'
code ''
StaticText "import ffmpeg ( ffmpeg . input ( 'input.mp4' ) . hflip () . output ( 'output.mp4' ) . run () )"
[25] button ''
heading 'API reference'
[68] link 'API reference', url='https://kkroening.github.io/ffmpeg-python/'
heading 'Complex filter graphs'
paragraph ''
StaticText 'FFmpeg is extremely powerful, but its command-line interface gets really complicated rather quickly - especially when working with signal graphs and doing anything more than trivial.'
paragraph ''
StaticText 'Take for example a signal graph that looks like this:'
paragraph ''
[69] link 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
image 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
paragraph ''
StaticText 'The corresponding command-line arguments are pretty gnarly:'
code ''
StaticText 'ffmpeg -i input.mp4 -i overlay.png -filter_complex "[0]trim=start_frame=10:end_frame=20[v0]; \\\\ [0]trim=start_frame=30:end_frame=40[v1];[v0][v1]concat=n=2[v2];[1]hflip[v3]; \\\\ [v2][v3]overlay=eof_action=repeat[v4];[v4]drawbox=50:50:120:120:red:t=5[v5]" \\\\ -map [ v5] output.mp4'
[26] button ''
paragraph ''
StaticText "Maybe this looks great to you, but if you're not an FFmpeg command-line expert, it probably looks alien."
paragraph ''
StaticText "If you're like me and find Python to be powerful and readable, it's easier with"
code ''
StaticText 'ffmpeg-python'
StaticText ':'
code ''
StaticText "import ffmpeg in_file = ffmpeg . input ( 'input.mp4' ) overlay_file = ffmpeg . input ( 'overlay.png' ) ( ffmpeg . concat ( in_file . trim ( start_frame = 10 , end_frame = 20 ), in_file . trim ( start_frame = 30 , end_frame = 40 ), ) . overlay ( overlay_file . hflip ()) . drawbox ( 50 , 50 , 120 , 120 , color = 'red' , thickness = 5 ) . output ( 'out.mp4' ) . run () )"
[27] button ''
paragraph ''
code ''
StaticText 'ffmpeg-python'
StaticText 'takes care of running'
code ''
StaticText 'ffmpeg'
StaticText 'with the command-line arguments that correspond to the above filter diagram, in familiar Python terms.'
[28] link 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
image 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
paragraph ''
StaticText 'Real-world signal graphs can get a heck of a lot more complex, but'
code ''
StaticText 'ffmpeg-python'
StaticText 'handles arbitrarily large (directed-acyclic) signal graphs.'
heading 'Installation'
heading 'Installing ffmpeg-python'
code ''
StaticText 'ffmpeg-python'
paragraph ''
StaticText 'The latest version of'
code ''
StaticText 'ffmpeg-python'
StaticText 'can be acquired via a typical pip install:'
code ''
StaticText 'pip install ffmpeg-python'
[29] button ''
paragraph ''
StaticText 'Or the source can be cloned and installed from locally:'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git pip install -e ./ffmpeg-python'
[30] button ''
blockquote ''
paragraph ''
[98] strong ''
StaticText 'Note'
StaticText ':'
code ''
StaticText 'ffmpeg-python'
StaticText 'makes no attempt to download/install FFmpeg, as'
code ''
StaticText 'ffmpeg-python'
StaticText 'is merely a pure-Python wrapper - whereas FFmpeg installation is platform-dependent/environment-specific, and is thus the responsibility of the user, as described below.'
heading 'Installing FFmpeg'
paragraph ''
StaticText 'Before using'
code ''
StaticText 'ffmpeg-python'
StaticText ', FFmpeg must be installed and accessible via the'
code ''
StaticText '$PATH'
StaticText 'environment variable.'
paragraph ''
StaticText 'There are a variety of ways to install FFmpeg, such as the'
[70] link 'official download links', url='https://ffmpeg.org/download.html'
StaticText ', or using your package manager of choice (e.g.'
code ''
StaticText 'sudo apt install ffmpeg'
StaticText 'on Debian/Ubuntu,'
code ''
StaticText 'brew install ffmpeg'
StaticText 'on OS X, etc.).'
paragraph ''
StaticText 'Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the'
code ''
StaticText 'ffmpeg'
StaticText 'command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):'
code ''
StaticText '$ ffmpeg ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)'
[31] button ''
blockquote ''
paragraph ''
[99] strong ''
StaticText 'Note'
StaticText ': The actual version information displayed here may vary from one system to another; but if a message such as'
code ''
StaticText 'ffmpeg: command not found'
StaticText 'appears instead of the version information, FFmpeg is not properly installed.'
heading 'Examples'
[71] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
paragraph ''
StaticText 'When in doubt, take a look at the'
[72] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText "to see if there's something that's close to whatever you're trying to do."
paragraph ''
StaticText 'Here are a few:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[150] link 'Convert video to numpy array', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-video-to-numpy-array'
listitem ''
ListMarker 'โข'
paragraph ''
[151] link 'Generate thumbnail for video', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#generate-thumbnail-for-video'
listitem ''
ListMarker 'โข'
paragraph ''
[152] link 'Read raw PCM audio via pipe', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-sound-to-raw-pcm-audio'
listitem ''
ListMarker 'โข'
paragraph ''
[153] link 'JupyterLab/Notebook stream editor', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#jupyter-stream-editor'
[32] link 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
image 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
list ''
listitem ''
ListMarker 'โข'
[100] link 'Tensorflow/DeepDream streaming', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#tensorflow-streaming'
[33] link 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
image 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
paragraph ''
StaticText 'See the'
[73] link 'Examples README', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText 'for additional examples.'
heading 'Custom Filters'
paragraph ''
StaticText "Don't see the filter you're looking for? While"
code ''
StaticText 'ffmpeg-python'
StaticText 'includes shorthand notation for some of the most commonly used filters (such as'
code ''
StaticText 'concat'
StaticText '), all filters can be referenced via the'
code ''
StaticText '.filter'
StaticText 'operator:'
code ''
StaticText "stream = ffmpeg . input ( 'dummy.mp4' ) stream = ffmpeg . filter ( stream , 'fps' , fps = 25 , round = 'up' ) stream = ffmpeg . output ( stream , 'dummy2.mp4' ) ffmpeg . run ( stream )"
[34] button ''
paragraph ''
StaticText 'Or fluently:'
code ''
StaticText "( ffmpeg . input ( 'dummy.mp4' ) . filter ( 'fps' , fps = 25 , round = 'up' ) . output ( 'dummy2.mp4' ) . run () )"
[35] button ''
paragraph ''
[74] strong ''
StaticText 'Special option names:'
paragraph ''
StaticText 'Arguments with special names such as'
code ''
StaticText '-qscale:v'
StaticText '(variable bitrate),'
code ''
StaticText '-b:v'
StaticText '(constant bitrate), etc. can be specified as a keyword-args dictionary as follows:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . output ( 'out.mp4' , ** { 'qscale:v' : 3 }) . run () )"
[36] button ''
paragraph ''
[75] strong ''
StaticText 'Multiple inputs:'
paragraph ''
StaticText 'Filters that take multiple input streams can be used by passing the input streams as an array to'
code ''
StaticText 'ffmpeg.filter'
StaticText ':'
code ''
StaticText "main = ffmpeg . input ( 'main.mp4' ) logo = ffmpeg . input ( 'logo.png' ) ( ffmpeg . filter ([ main , logo ], 'overlay' , 10 , 10 ) . output ( 'out.mp4' ) . run () )"
[37] button ''
paragraph ''
[76] strong ''
StaticText 'Multiple outputs:'
paragraph ''
StaticText 'Filters that produce multiple outputs can be used with'
code ''
StaticText '.filter_multi_output'
StaticText ':'
code ''
StaticText "split = ( ffmpeg . input ( 'in.mp4' ) . filter_multi_output ( 'split' ) # or `.split()` ) ( ffmpeg . concat ( split [ 0 ], split [ 1 ]. reverse ()) . output ( 'out.mp4' ) . run () )"
[38] button ''
paragraph ''
StaticText '(In this particular case,'
code ''
StaticText '.split()'
StaticText 'is the equivalent shorthand, but the general approach works for other multi-output filters)'
paragraph ''
[77] strong ''
StaticText 'String expressions:'
paragraph ''
StaticText 'Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . filter ( 'crop' , 'in_w-2*10' , 'in_h-2*20' ) . input ( 'out.mp4' ) )"
[39] button ''
paragraph ''
StaticText 'When in doubt, refer to the'
[78] link 'existing filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
StaticText ','
[79] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText ', and/or the'
[80] link 'official ffmpeg documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
StaticText '.'
heading 'Frequently asked questions'
paragraph ''
[81] strong ''
StaticText 'Why do I get an import/attribute/etc. error from'
code ''
StaticText 'import ffmpeg'
StaticText '?'
paragraph ''
StaticText 'Make sure you ran'
code ''
StaticText 'pip install ffmpeg-python'
StaticText 'and'
emphasis ''
[101] strong ''
StaticText 'not'
StaticText ''
code ''
StaticText 'pip install ffmpeg'
StaticText '(wrong) or'
code ''
StaticText 'pip install python-ffmpeg'
StaticText '(also wrong).'
paragraph ''
[82] strong ''
StaticText 'Why did my audio stream get dropped?'
paragraph ''
StaticText 'Some ffmpeg filters drop audio streams, and care must be taken to preserve the audio in the final output. The'
code ''
StaticText '.audio'
StaticText 'and'
code ''
StaticText '.video'
StaticText 'operators can be used to reference the audio/video portions of a stream so that they can be processed separately and then re-combined later in the pipeline.'
paragraph ''
StaticText 'This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the way while users may refer to the official ffmpeg documentation as to why certain filters drop audio.'
paragraph ''
StaticText 'As usual, take a look at the'
[83] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline'
StaticText '('
emphasis ''
StaticText 'Audio/video pipeline'
StaticText 'in particular).'
paragraph ''
[84] strong ''
StaticText 'How can I find out the used command line arguments?'
paragraph ''
StaticText 'You can run'
code ''
StaticText 'stream.get_args()'
StaticText 'before'
code ''
StaticText 'stream.run()'
StaticText 'to retrieve the command line arguments that will be passed to'
code ''
StaticText 'ffmpeg'
StaticText '. You can also run'
code ''
StaticText 'stream.compile()'
StaticText 'that also includes the'
code ''
StaticText 'ffmpeg'
StaticText 'executable as the first argument.'
paragraph ''
[85] strong ''
StaticText 'How do I do XYZ?'
paragraph ''
StaticText 'Take a look at each of the links in the'
[86] link 'Additional Resources', url='https://kkroening.github.io/ffmpeg-python/'
StaticText "section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far."
paragraph ''
StaticText 'Issues not directly related to'
code ''
StaticText 'ffmpeg-python'
StaticText "or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed."
paragraph ''
StaticText 'That said, we hope to continue improving our documentation and provide a community of support for people using'
code ''
StaticText 'ffmpeg-python'
StaticText 'to do cool and exciting things.'
heading 'Contributing'
[40] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
paragraph ''
StaticText 'One of the best things you can do to help make'
code ''
StaticText 'ffmpeg-python'
StaticText 'better is to answer'
[87] link 'open questions', url='https://github.com/kkroening/ffmpeg-python/labels/question'
StaticText 'in the issue tracker. The questions that are answered will be tagged and incorporated into the documentation, examples, and other learning resources.'
paragraph ''
StaticText 'If you notice things that could be better in the documentation or overall development experience, please say so in the'
[88] link 'issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
StaticText '. And of course, feel free to report any bugs or submit feature requests.'
paragraph ''
StaticText "Pull requests are welcome as well, but it wouldn't hurt to touch base in the issue tracker or hop on the"
[89] link 'Matrix chat channel', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
StaticText 'first.'
paragraph ''
StaticText 'Anyone who fixes any of the'
[90] link 'open bugs', url='https://github.com/kkroening/ffmpeg-python/labels/bug'
StaticText 'or implements'
[91] link 'requested enhancements', url='https://github.com/kkroening/ffmpeg-python/labels/enhancement'
StaticText 'is a hero, but changes should include passing tests.'
heading 'Running tests'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git cd ffmpeg-python virtualenv venv . venv/bin/activate # (OS X / Linux) venv \\\\b in \\\\a ctivate # (Windows) pip install -e .[dev] pytest'
[41] button ''
heading 'Special thanks'
list ''
listitem ''
ListMarker 'โข'
[102] link 'Fabrice Bellard', url='https://bellard.org/'
listitem ''
ListMarker 'โข'
[103] link 'The FFmpeg team', url='https://ffmpeg.org/donations.html'
listitem ''
ListMarker 'โข'
[104] link 'Arne de Laat', url='https://github.com/153957'
listitem ''
ListMarker 'โข'
[105] link 'Davide Depau', url='https://github.com/depau'
listitem ''
ListMarker 'โข'
[106] link 'Dim', url='https://github.com/lloti'
listitem ''
ListMarker 'โข'
[107] link 'Noah Stier', url='https://github.com/noahstier'
heading 'Additional Resources'
list ''
listitem ''
ListMarker 'โข'
[108] link 'API Reference', url='https://kkroening.github.io/ffmpeg-python/'
listitem ''
ListMarker 'โข'
[109] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
listitem ''
ListMarker 'โข'
[110] link 'Filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
listitem ''
ListMarker 'โข'
[111] link 'FFmpeg Homepage', url='https://ffmpeg.org/'
listitem ''
ListMarker 'โข'
[112] link 'FFmpeg Documentation', url='https://ffmpeg.org/ffmpeg.html'
listitem ''
ListMarker 'โข'
[113] link 'FFmpeg Filters Documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
listitem ''
ListMarker 'โข'
[114] link 'Test cases', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/tests/test_ffmpeg.py'
listitem ''
ListMarker 'โข'
[115] link 'Issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
listitem ''
ListMarker 'โข'
StaticText 'Matrix Chat:'
[116] link '#ffmpeg-python:matrix.org', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
We need to star the top eight mostโstarred repositories. Since this repo is already starred, we should return to the list of top repositories to continue with the remaining ones. Navigating back will bring us to the previous page, which lists the top starred projects.
go_back()
RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
To star the top eight most-starred repositories, we first need to open each repositoryโs project page and click the star toggle. The next step is to open the project page for the highestโstarred repo, which is reached by clicking the link with ID 123.
click('123')RootWebArea 'Umano: News Read To You / AndroidSlidingUpPanel ยท GitLab', focused, url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[26] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[27] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[28] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[29] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[30] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[31] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[32] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[33] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'AndroidSlidingUpPanel'
[34] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
listitem ''
[35] link 'Project information', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/activity'
listitem ''
[36] link 'Repository', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master'
listitem ''
[37] link 'Issues', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues'
StaticText '267'
listitem ''
[38] link 'Merge requests', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests'
StaticText '34'
listitem ''
[39] link 'CI/CD', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipelines'
list ''
listitem ''
[75] link 'Pipelines', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipelines'
listitem ''
[76] link 'Jobs', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/jobs'
listitem ''
[77] link 'Schedules', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/pipeline_schedules'
listitem ''
[40] link 'Deployments', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/environments'
listitem ''
[41] link 'Packages and registries', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/packages'
listitem ''
[42] link 'Monitor', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/incidents'
listitem ''
[43] link 'Analytics', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/value_stream_analytics'
listitem ''
[44] link 'Wiki', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/wikis/home'
listitem ''
[45] link 'Snippets', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[18] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[19] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[46] link 'Umano: News Read To You', url='http://127.0.0.1:8023/umano'
listitem ''
[47] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel'
main ''
StaticText 'A'
heading 'AndroidSlidingUpPanel'
StaticText 'Project ID: 152'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar'
[9] link '56', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks'
navigation ''
list ''
listitem ''
[57] link '361 Commits', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commits/master'
[78] strong ''
StaticText '361'
listitem ''
[58] link '35 Branches', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/branches'
[79] strong ''
StaticText '35'
listitem ''
[59] link '8 Tags', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tags'
[80] strong ''
StaticText '8'
listitem ''
[60] strong ''
StaticText '10.9 MB'
StaticText 'Project Storage'
listitem ''
[61] link '8 Releases', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/releases'
[81] strong ''
StaticText '8'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.'
image 'user avatar', url='https://www.gravatar.com/avatar/7bd4d29b1cf01ade7f09fbcff24f7b8c?s=80&d=identicon'
[12] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
StaticText 'tokudu authored'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
group ''
StaticText '45a46043'
[20] button 'Copy commit SHA', live='polite', relevant='additions text'
[13] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[62] link 'AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/'
listitem ''
StaticText '/'
[63] button 'Add to tree', hasPopup='menu', expanded=False
[14] link 'Find file', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/find_file/master'
[15] link 'Web IDE', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#modal-confirm-fork-webide'
[16] button 'Download'
StaticText 'Select Archive Format'
[17] link 'Clone', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel#'
list ''
listitem ''
[48] link 'README', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
listitem ''
[49] link 'Apache License 2.0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell 'demo'
[82] link 'demo', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/demo'
cell 'Update the library'
[83] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle/wrapper'
[84] link 'gradle/wrapper', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/gradle'
cell 'Update gradle-wrapper.properties'
[85] link 'Update gradle-wrapper.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/b95f31dcee9cbd8ef59e1eb10224b8da5c47ff67'
cell '8 years ago'
time 'Jun 20, 2017 9:35am GMT+0600'
StaticText '8 years ago'
row ''
cell 'library'
[86] link 'library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/tree/master/library'
cell 'Update the library'
[87] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell '.gitignore'
[88] link '.gitignore', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.gitignore'
cell 'Updated the gradle wrapper and prepared everything for maven central sync'
[89] link 'Updated the gradle wrapper and prepared everything for maven central sync', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3353430aac3b944468eeef869c29689308202039'
cell '11 years ago'
time 'May 14, 2014 10:08pm GMT+0600'
StaticText '11 years ago'
row ''
cell '.travis.yml'
[90] link '.travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/.travis.yml'
cell 'Update .travis.yml'
[91] link 'Update .travis.yml', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/96677b69d3531bbbee72724681967040a70c2c44'
cell '8 years ago'
time 'Jun 20, 2017 9:37am GMT+0600'
StaticText '8 years ago'
row ''
cell 'LICENSE.txt'
[92] link 'LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/LICENSE.txt'
cell 'Update LICENSE.txt'
[93] link 'Update LICENSE.txt', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/58b292f52348027b4cbdd3d405446fdba1e88152'
cell '9 years ago'
time 'Nov 18, 2015 3:19pm GMT+0600'
StaticText '9 years ago'
row ''
cell 'README.md'
[94] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
cell 'Update the library'
[95] link 'Update the library', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/869dd596be113d6b813ca9109177de8260234a2b'
cell '8 years ago'
time 'Sep 18, 2017 4:07am GMT+0600'
StaticText '8 years ago'
row ''
cell 'build.gradle'
[96] link 'build.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/build.gradle'
cell 'Upgrade to SDK'
[97] link 'Upgrade to SDK', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/2e0179412bae438939efef01d0b5cb3d83c49eab'
cell '8 years ago'
time 'Sep 18, 2017 3:44am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradle.properties'
[98] link 'gradle.properties', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradle.properties'
cell 'Fix the group'
[99] link 'Fix the group', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/45a460435b07e764138a700328836cafc1ed5c42'
cell '8 years ago'
time 'Sep 18, 2017 4:28am GMT+0600'
StaticText '8 years ago'
row ''
cell 'gradlew'
[100] link 'gradlew', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew'
cell 'Update to Gradle 2.13.'
[101] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'gradlew.bat'
[102] link 'gradlew.bat', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/gradlew.bat'
cell 'Update to Gradle 2.13.'
[103] link 'Update to Gradle 2.13.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/4ec61db398e9d920b118ea364a6dc3bfbfc4cc0d'
cell '9 years ago'
time 'Aug 24, 2016 2:45am GMT+0600'
StaticText '9 years ago'
row ''
cell 'maven_push.gradle'
[104] link 'maven_push.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/maven_push.gradle'
cell 'Updating maven_push.gradle to the latest version.'
[105] link 'Updating maven_push.gradle to the latest version.', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/d31a33ac40a3546c66c02025086b0504308a5c7c'
cell '9 years ago'
time 'Feb 17, 2016 9:56am GMT+0600'
StaticText '9 years ago'
row ''
cell 'settings.gradle'
[106] link 'settings.gradle', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/settings.gradle'
cell 'Move to a multi-project gradle build'
[107] link 'Move to a multi-project gradle build', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/ec84d3ea232fffffbb5aa5dd06df85c2ce998b22'
cell '11 years ago'
time 'Jan 9, 2014 2:37am GMT+0600'
StaticText '11 years ago'
row ''
cell 'slidinguppanel.png'
[108] link 'slidinguppanel.png', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/slidinguppanel.png'
cell 'Adding the screenshot'
[109] link 'Adding the screenshot', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/commit/3e35b3b06402af97a67c30d9e4c2bcd172206a31'
cell '12 years ago'
time 'Jun 1, 2013 1:28am GMT+0600'
StaticText '12 years ago'
article ''
[21] link 'README.md', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/blob/master/README.md'
[50] strong ''
StaticText 'README.md'
paragraph ''
[51] link 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library'
image 'Maven Central', url='https://maven-badges.herokuapp.com/maven-central/com.sothree.slidinguppanel/library/badge.svg'
StaticText ''
[52] link 'Badge', url='http://www.libtastic.com/technology/30/'
image 'Badge', url='http://www.libtastic.com/static/osbadges/30.png'
paragraph ''
[53] strong ''
StaticText 'Note:'
StaticText 'we are'
[54] strong ''
StaticText 'not'
StaticText 'actively responding to issues right now. If you find a bug, please submit a PR.'
heading 'Android Sliding Up Panel'
paragraph ''
StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application.'
paragraph ''
StaticText 'As seen in Umano Android App (now acquired by Dropbox):'
paragraph ''
[55] link 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
image 'SlidingUpPanelLayout', url='https://raw.github.com/umano/AndroidSlidingUpPanelDemo/master/slidinguppanel.png'
heading 'Known Uses in Popular Apps'
list ''
listitem ''
ListMarker 'โข'
StaticText '[Soundcloud] ('
[64] link 'https://play.google.com/store/apps/details?id=com.soundcloud.android', url='https://play.google.com/store/apps/details?id=com.soundcloud.android'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Dropbox Paper] ('
[65] link 'https://play.google.com/store/apps/details?id=com.dropbox.paper', url='https://play.google.com/store/apps/details?id=com.dropbox.paper'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText '[Snaptee] ('
[66] link 'https://play.google.com/store/apps/details?id=co.snaptee.android', url='https://play.google.com/store/apps/details?id=co.snaptee.android'
StaticText ')'
paragraph ''
StaticText 'If you are using the library and you would like to have your app listed, simply let us know.'
heading 'Importing the Library'
paragraph ''
StaticText 'Simply add the following dependency to your'
code ''
StaticText 'build.gradle'
StaticText 'file to use the latest version:'
code ''
StaticText "dependencies { repositories { mavenCentral () } compile 'com.sothree.slidinguppanel:library:3.4.0' }"
[22] button ''
heading 'Usage'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Include'
code ''
StaticText 'com.sothree.slidinguppanel.SlidingUpPanelLayout'
StaticText 'as the root element in your activity layout.'
listitem ''
ListMarker 'โข'
StaticText 'The layout must have'
code ''
StaticText 'gravity'
StaticText 'set to either'
code ''
StaticText 'top'
StaticText 'or'
code ''
StaticText 'bottom'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'Make sure that it has two children. The first child is your main layout. The second child is your layout for the sliding up panel.'
listitem ''
ListMarker 'โข'
StaticText 'The main layout should have the width and the height set to'
code ''
StaticText 'match_parent'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'The sliding layout should have the width set to'
code ''
StaticText 'match_parent'
StaticText 'and the height set to either'
code ''
StaticText 'match_parent'
StaticText ','
code ''
StaticText 'wrap_content'
StaticText 'or the max desireable height. If you would like to define the height as the percetange of the screen, set it to'
code ''
StaticText 'match_parent'
StaticText 'and also define a'
code ''
StaticText 'layout_weight'
StaticText 'attribute for the sliding view.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the whole panel will act as a drag region and will intercept clicks and drag events. You can restrict the drag area to a specific view by using the'
code ''
StaticText 'setDragView'
StaticText 'method or'
code ''
StaticText 'umanoDragView'
StaticText 'attribute.'
paragraph ''
StaticText 'For more information, please refer to the sample code.'
code ''
StaticText '<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree= "http://schemas.android.com/apk/res-auto" android:id= "@+id/sliding_layout" android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "bottom" sothree:umanoPanelHeight= "68dp" sothree:umanoShadowHeight= "4dp" > <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center" android:text= "Main Content" android:textSize= "16sp" /> <TextView android:layout_width= "match_parent" android:layout_height= "match_parent" android:gravity= "center|top" android:text= "The Awesome Sliding Up Panel" android:textSize= "16sp" /> </com.sothree.slidinguppanel.SlidingUpPanelLayout>'
[23] button ''
paragraph ''
StaticText 'For smooth interaction with the ActionBar, make sure that'
code ''
StaticText 'windowActionBarOverlay'
StaticText 'is set to'
code ''
StaticText 'true'
StaticText 'in your styles:'
code ''
StaticText '<style name= "AppTheme" > <item name= "android:windowActionBarOverlay" > true </item> </style>'
[24] button ''
paragraph ''
StaticText 'However, in this case you would likely want to add a top margin to your main layout of'
code ''
StaticText '?android:attr/actionBarSize'
StaticText 'or'
code ''
StaticText '?attr/actionBarSize'
StaticText 'to support older API versions.'
heading 'Caveats, Additional Features and Customization'
list ''
listitem ''
ListMarker 'โข'
StaticText 'If you are using a custom'
code ''
StaticText 'umanoDragView'
StaticText ', the panel will pass through the click events to the main layout. Make your second layout'
code ''
StaticText 'clickable'
StaticText 'to prevent this.'
listitem ''
ListMarker 'โข'
StaticText 'You can change the panel height by using the'
code ''
StaticText 'setPanelHeight'
StaticText 'method or'
code ''
StaticText 'umanoPanelHeight'
StaticText 'attribute.'
listitem ''
ListMarker 'โข'
StaticText 'If you would like to hide the shadow above the sliding panel, set'
code ''
StaticText 'shadowHeight'
StaticText 'attribute to 0.'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setEnabled(false)'
StaticText 'to completely disable the sliding panel (including touch and programmatic sliding)'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "to disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'getPanelState'
StaticText 'to get the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'Use'
code ''
StaticText 'setPanelState'
StaticText 'to set the current panel state'
listitem ''
ListMarker 'โข'
StaticText 'You can add parallax to the main view by setting'
code ''
StaticText 'umanoParallaxOffset'
StaticText 'attribute (see demo for the example).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a anchor point in the middle of the screen using'
code ''
StaticText 'setAnchorPoint'
StaticText 'to allow an intermediate expanded state for the panel (similar to Google Maps).'
listitem ''
ListMarker 'โข'
StaticText 'You can set a'
code ''
StaticText 'PanelSlideListener'
StaticText 'to monitor events about sliding panes.'
listitem ''
ListMarker 'โข'
StaticText 'You can also make the panel slide from the top by changing the'
code ''
StaticText 'layout_gravity'
StaticText 'attribute of the layout to'
code ''
StaticText 'top'
StaticText '.'
listitem ''
ListMarker 'โข'
StaticText 'You can provide a scroll interpolator for the panel movement by setting'
code ''
StaticText 'umanoScrollInterpolator'
StaticText 'attribute. For instance, if you want a bounce or overshoot effect for the panel.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the panel pushes up the main content. You can make it overlay the main content by using'
code ''
StaticText 'setOverlayed'
StaticText 'method or'
code ''
StaticText 'umanoOverlay'
StaticText 'attribute. This is useful if you would like to make the sliding layout semi-transparent. You can also set'
code ''
StaticText 'umanoClipPanel'
StaticText 'to false to make the panel transparent in non-overlay mode.'
listitem ''
ListMarker 'โข'
StaticText 'By default, the main content is dimmed as the panel slides up. You can change the dim color by changing'
code ''
StaticText 'umanoFadeColor'
StaticText '. Set it to'
code ''
StaticText '"@android:color/transparent"'
StaticText 'to remove dimming completely.'
heading 'Scrollable Sliding Views'
paragraph ''
StaticText 'If you have a scrollable view inside of the sliding panel, make sure to set'
code ''
StaticText 'umanoScrollableView'
StaticText 'attribute on the panel to supported nested scrolling. The panel supports'
code ''
StaticText 'ListView'
StaticText ','
code ''
StaticText 'ScrollView'
StaticText 'and'
code ''
StaticText 'RecyclerView'
StaticText 'out of the box, but you can add support for any type of a scrollable view by setting a custom'
code ''
StaticText 'ScrollableViewHelper'
StaticText '. Here is an example for'
code ''
StaticText 'NestedScrollView'
code ''
StaticText 'public class NestedScrollableViewHelper extends ScrollableViewHelper { public int getScrollableViewScrollPosition(View scrollableView, boolean isSlidingUp) { if (mScrollableView instanceof NestedScrollView) { if(isSlidingUp){ return mScrollableView.getScrollY(); } else { NestedScrollView nsv = ((NestedScrollView) mScrollableView); View child = nsv.getChildAt(0); return (child.getBottom() - (nsv.getHeight() + nsv.getScrollY())); } } else { return 0; } } }'
[25] button ''
paragraph ''
StaticText 'Once you define your helper, you can set it using'
code ''
StaticText 'setScrollableViewHelper'
StaticText 'on the sliding panel.'
heading 'Implementation'
paragraph ''
StaticText 'This library was initially based on the opened-sourced'
[56] link 'SlidingPaneLayout', url='http://developer.android.com/reference/android/support/v4/widget/SlidingPaneLayout.html'
StaticText 'component from the r13 of the Android Support Library. Thanks Android team!'
heading 'Requirements'
paragraph ''
StaticText 'Tested on Android 2.2+'
heading 'Other Contributors'
list ''
listitem ''
ListMarker 'โข'
StaticText 'Nov 23, 15 -'
[67] link '@kiyeonk', url='https://github.com/kiyeonk'
StaticText '- umanoScrollInterpolator support'
listitem ''
ListMarker 'โข'
StaticText 'Jan 21, 14 - ChaYoung You ('
[68] link '@yous', url='https://github.com/yous'
StaticText ') - Slide from the top support'
listitem ''
ListMarker 'โข'
StaticText 'Aug 20, 13 -'
[69] link '@gipi', url='https://github.com/gipi'
StaticText '- Android Studio Support'
listitem ''
ListMarker 'โข'
StaticText 'Jul 24, 13 - Philip Schiffer ('
[70] link '@hameno', url='https://github.com/hameno'
StaticText ') - Maven Support'
listitem ''
ListMarker 'โข'
StaticText 'Oct 20, 13 - Irina Preศa ('
[71] link '@iriina', url='https://github.com/iriina'
StaticText ') - Anchor Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 1, 13 - ('
[72] link '@youchy', url='https://github.com/youchy'
StaticText ') - XML Attributes Support'
listitem ''
ListMarker 'โข'
StaticText 'Dec 22, 13 - Vladimir Mironov ('
[73] link '@MironovNsk', url='https://github.com/nsk-mironov'
StaticText ') - Custom Expanded Panel Height'
paragraph ''
StaticText 'If you have an awesome pull request, send it over!'
heading 'Changelog'
list ''
listitem ''
ListMarker 'โข'
StaticText '3.4.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Use the latest support library 26 and update the min version to 14.'
listitem ''
ListMarker 'โฆ'
StaticText 'Bug fixes'
listitem ''
ListMarker 'โข'
StaticText '3.3.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Lots of bug fixes from various pull requests.'
listitem ''
ListMarker 'โฆ'
StaticText 'Removed the nineoldandroids dependency. Use ViewCompat instead.'
listitem ''
ListMarker 'โข'
StaticText '3.3.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'You can now set a'
code ''
StaticText 'FadeOnClickListener'
StaticText ', for when the faded area of the main content is clicked.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'PanelSlideListener'
StaticText 'has a new format (multiple of them can be set now'
listitem ''
ListMarker 'โฆ'
StaticText 'Fixed the setTouchEnabled bug'
listitem ''
ListMarker 'โข'
StaticText '3.2.1'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for'
code ''
StaticText 'umanoScrollInterpolator'
listitem ''
ListMarker 'โฆ'
StaticText 'Add support for percentage-based sliding panel height using'
code ''
StaticText 'layout_weight'
StaticText 'attribute'
listitem ''
ListMarker 'โฆ'
StaticText 'Add'
code ''
StaticText 'ScrollableViewHelper'
StaticText 'to allow users extend support for new types of scrollable views.'
listitem ''
ListMarker 'โข'
StaticText '3.2.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Rename'
code ''
StaticText 'umanoParalaxOffset'
StaticText 'to'
code ''
StaticText 'umanoParallaxOffset'
listitem ''
ListMarker 'โฆ'
StaticText 'RecyclerView support.'
listitem ''
ListMarker 'โข'
StaticText '3.1.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umanoScrollableView'
StaticText 'to supported nested scrolling in children (only ScrollView and ListView are supported for now)'
listitem ''
ListMarker 'โข'
StaticText '3.0.0'
list ''
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'umano'
StaticText 'prefix for all attributes'
listitem ''
ListMarker 'โฆ'
StaticText 'Added'
code ''
StaticText 'clipPanel'
StaticText 'attribute for supporting transparent panels in non-overlay mode.'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setEnabled(false)'
StaticText '- now completely disables the sliding panel (touch and programmatic sliding)'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setTouchEnabled(false)'
StaticText "- disables panel's touch responsiveness (drag and click), you can still control the panel programatically"
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'getPanelState'
StaticText '- is now the only method to get the current panel state'
listitem ''
ListMarker 'โฆ'
code ''
StaticText 'setPanelState'
StaticText '- is now the only method to modify the panel state from code'
listitem ''
ListMarker 'โข'
StaticText '2.0.2 - Allow'
code ''
StaticText 'wrap_content'
StaticText 'for sliding view height attribute. Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.1 - Bug fixes.'
listitem ''
ListMarker 'โข'
StaticText '2.0.0 - Cleaned up various public method calls. Added animated'
code ''
StaticText 'showPanel'
StaticText '/'
code ''
StaticText 'hidePanel'
StaticText 'methods.'
listitem ''
ListMarker 'โข'
StaticText '1.0.1 - Initial Release'
heading 'Licence'
blockquote ''
paragraph ''
StaticText 'Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:'
paragraph ''
[74] link 'http://www.apache.org/licenses/LICENSE-2.0', url='http://www.apache.org/licenses/LICENSE-2.0'
paragraph ''
StaticText 'Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.'
To continue starring the remaining top repositories, we must return to that listing page and click the next highestโstarred project links.
go_back()
RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
We have already starred the top repo (Umano) and the goal is to star the next highestโstarred repos. The next target is Metaโcreateโreactโapp, link ID 124. Clicking this will open its project page where we can toggle the star.
click('124')RootWebArea 'Meta / create-react-app ยท GitLab', focused, url='http://127.0.0.1:8023/facebook/create-react-app'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/facebook/create-react-app#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[30] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[31] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[32] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[33] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[34] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[35] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[36] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[37] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'create-react-app'
[38] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app'
StaticText 'C'
listitem ''
[39] link 'Project information', url='http://127.0.0.1:8023/facebook/create-react-app/activity'
listitem ''
[40] link 'Repository', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main'
listitem ''
[41] link 'Issues', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues'
StaticText '1,547'
listitem ''
[42] link 'Merge requests', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests'
StaticText '417'
listitem ''
[43] link 'CI/CD', url='http://127.0.0.1:8023/facebook/create-react-app/-/pipelines'
listitem ''
[44] link 'Deployments', url='http://127.0.0.1:8023/facebook/create-react-app/-/environments'
listitem ''
[45] link 'Packages and registries', url='http://127.0.0.1:8023/facebook/create-react-app/-/packages'
listitem ''
[46] link 'Monitor', url='http://127.0.0.1:8023/facebook/create-react-app/-/incidents'
listitem ''
[47] link 'Analytics', url='http://127.0.0.1:8023/facebook/create-react-app/-/value_stream_analytics'
listitem ''
[48] link 'Wiki', url='http://127.0.0.1:8023/facebook/create-react-app/-/wikis/home'
listitem ''
[49] link 'Snippets', url='http://127.0.0.1:8023/facebook/create-react-app/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[50] link 'Meta', url='http://127.0.0.1:8023/facebook'
listitem ''
[51] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app'
main ''
StaticText 'C'
heading 'create-react-app'
StaticText 'Project ID: 122'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/facebook/create-react-app/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar'
[9] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks'
navigation ''
list ''
listitem ''
[84] link '2,800 Commits', url='http://127.0.0.1:8023/facebook/create-react-app/-/commits/main'
[107] strong ''
StaticText '2,800'
listitem ''
[85] link '424 Branches', url='http://127.0.0.1:8023/facebook/create-react-app/-/branches'
[108] strong ''
StaticText '424'
listitem ''
[86] link '414 Tags', url='http://127.0.0.1:8023/facebook/create-react-app/-/tags'
[109] strong ''
StaticText '414'
listitem ''
[87] strong ''
StaticText '692.2 MB'
StaticText 'Project Storage'
listitem ''
[88] link '83 Releases', url='http://127.0.0.1:8023/facebook/create-react-app/-/releases'
[110] strong ''
StaticText '83'
paragraph ''
StaticText 'Set up a modern web app by running one command.'
image 'user avatar', url='https://www.gravatar.com/avatar/1aefc6461706acc9ffe49a6b70bb00d2?s=80&d=identicon'
[12] link 'docs: fix link of "Building for Relative Paths" (#12691)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d960b9e38c062584ff6cfb1a70e1512509a966e7'
StaticText 'ryan.c authored'
time 'Sep 8, 2022 1:40pm GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'd960b9e3'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'main', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[89] link 'create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/'
listitem ''
StaticText '/'
[90] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/facebook/create-react-app/-/find_file/main'
[16] link 'Web IDE', url='http://127.0.0.1:8023/facebook/create-react-app#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/facebook/create-react-app#'
list ''
listitem ''
[52] link 'README', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
listitem ''
[53] link 'MIT License', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/LICENSE'
listitem ''
[54] link 'CHANGELOG', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-0.x.md'
listitem ''
[55] link 'CONTRIBUTING', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
table 'Files, directories, and submodules in the path / for commit reference main', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github'
[111] link '.github', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/.github'
cell 'chore(lint): lint all files (#12288)'
[112] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell 'docusaurus'
[113] link 'docusaurus', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/docusaurus'
cell 'docs: fix link of "Building for Relative Paths" (#12691)'
[114] link 'docs: fix link of "Building for Relative Paths" (#12691)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d960b9e38c062584ff6cfb1a70e1512509a966e7'
cell '3 years ago'
time 'Sep 8, 2022 1:40pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'packages'
[115] link 'packages', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/packages'
cell 'Merge pull request #12563 from rvdende/patch-1'
[116] link 'Merge pull request #12563 from rvdende/patch-1', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/2f891bbda3e777e049a89aa55797d29df76e222b'
cell '3 years ago'
time 'Jul 6, 2022 12:46am GMT+0600'
StaticText '3 years ago'
row ''
cell 'tasks'
[117] link 'tasks', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/tasks'
cell 'chore(lint): lint all files (#12288)'
[118] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell 'test'
[119] link 'test', url='http://127.0.0.1:8023/facebook/create-react-app/-/tree/main/test'
cell 'chore(lint): lint all files (#12288)'
[120] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.alexignore'
[121] link '.alexignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.alexignore'
cell 'Add Alex to lint documentation (#7852)'
[122] link 'Add Alex to lint documentation (#7852)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/1d03579f518d2d5dfd3e5678184dd4a7d8544774'
cell '6 years ago'
time 'Oct 25, 2019 12:14am GMT+0600'
StaticText '6 years ago'
row ''
cell '.alexrc'
[123] link '.alexrc', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.alexrc'
cell 'Add Alex to lint documentation (#7852)'
[124] link 'Add Alex to lint documentation (#7852)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/1d03579f518d2d5dfd3e5678184dd4a7d8544774'
cell '6 years ago'
time 'Oct 25, 2019 12:14am GMT+0600'
StaticText '6 years ago'
row ''
cell '.eslintignore'
[125] link '.eslintignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.eslintignore'
cell 'chore(lint): lint all files (#12288)'
[126] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.eslintrc.json'
[127] link '.eslintrc.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.eslintrc.json'
cell 'chore(lint): lint all files (#12288)'
[128] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitattributes'
[129] link '.gitattributes', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.gitattributes'
cell "fix: Fix azure-pipelines' endOfLine (#9258)"
[130] link "fix: Fix azure-pipelines' endOfLine (#9258)", url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/cef668a3b5b76646db92d67b766fe3e1734a0895'
cell '5 years ago'
time 'Sep 14, 2020 9:26am GMT+0600'
StaticText '5 years ago'
row ''
cell '.gitignore'
[131] link '.gitignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.gitignore'
cell 'chore(lint): lint all files (#12288)'
[132] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.prettierignore'
[133] link '.prettierignore', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.prettierignore'
SvgRoot ''
group 'prettier-icon-dark'
cell 'chore(lint): lint all files (#12288)'
[134] link 'chore(lint): lint all files (#12288)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/f99167c014a728ec856bda14f87181d90b050813'
cell '3 years ago'
time 'Apr 14, 2022 2:38am GMT+0600'
StaticText '3 years ago'
row ''
cell '.prettierrc'
[135] link '.prettierrc', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/.prettierrc'
SvgRoot ''
group 'prettier-icon-dark'
cell 'chore: Update .prettierrc (#9860)'
[136] link 'chore: Update .prettierrc (#9860)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/c06f16c14cd5e59e6ada115ebf9ae05fedb0222c'
cell '5 years ago'
time 'Oct 27, 2020 12:18am GMT+0600'
StaticText '5 years ago'
row ''
cell 'CHANGELOG-0.x.md'
[137] link 'CHANGELOG-0.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-0.x.md'
cell 'Switch branch name'
[138] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-1.x.md'
[139] link 'CHANGELOG-1.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-1.x.md'
cell 'Switch branch name'
[140] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-2.x.md'
[141] link 'CHANGELOG-2.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-2.x.md'
cell 'Switch branch name'
[142] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-3.x.md'
[143] link 'CHANGELOG-3.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-3.x.md'
cell 'Switch branch name'
[144] link 'Switch branch name', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/bb64e31a81eb12d688c14713dce812143688750a'
cell '4 years ago'
time 'Jul 7, 2021 9:44pm GMT+0600'
StaticText '4 years ago'
row ''
cell 'CHANGELOG-4.x.md'
[145] link 'CHANGELOG-4.x.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG-4.x.md'
cell 'docs: Changelog 5.0.0 (#11805)'
[146] link 'docs: Changelog 5.0.0 (#11805)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/d73c2f24053da5272d4286049e27adcd767c1c8a'
cell '3 years ago'
time 'Jan 13, 2022 3:44am GMT+0600'
StaticText '3 years ago'
row ''
cell 'CHANGELOG.md'
[147] link 'CHANGELOG.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CHANGELOG.md'
cell 'Prepare 5.0.1 release'
[148] link 'Prepare 5.0.1 release', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/6fb4f977b7522c6a1632ec9133af30f5df3afb09'
cell '3 years ago'
time 'Apr 12, 2022 11:29pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'CODE_OF_CONDUCT.md'
[149] link 'CODE_OF_CONDUCT.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CODE_OF_CONDUCT.md'
cell 'Adopt Contributor Covenant (#7650)'
[150] link 'Adopt Contributor Covenant (#7650)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/78fb4cf11461107a485a0b1378e809b9684d1f22'
cell '6 years ago'
time 'Sep 6, 2019 9:53pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'CONTRIBUTING.md'
[151] link 'CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
cell 'Update CONTRIBUTING.md'
[152] link 'Update CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/9673858a3715287c40aef9e800c431c7d45c05a2'
cell '3 years ago'
time 'Dec 14, 2021 9:56pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'LICENSE'
[153] link 'LICENSE', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/LICENSE'
cell 'BSD+Patents -> MIT (#3189)'
[154] link 'BSD+Patents -> MIT (#3189)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/2e82ebb3371731a5c4e346f310848ddb23fd0976'
cell '8 years ago'
time 'Sep 26, 2017 3:30pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[155] link 'README.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
cell 'Update links in README'
[156] link 'Update links in README', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/b79ef9c4638ff62c64973542d08e2a633d9bc2c5'
cell '3 years ago'
time 'Dec 24, 2021 3:00am GMT+0600'
StaticText '3 years ago'
row ''
cell 'SECURITY.md'
[157] link 'SECURITY.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/SECURITY.md'
cell 'Create SECURITY.md'
[158] link 'Create SECURITY.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/5e41ca016c1a650774b1e04d126a12ca93743c30'
cell '5 years ago'
time 'Aug 11, 2020 3:49pm GMT+0600'
StaticText '5 years ago'
row ''
cell 'azure-pipelines-test-job.yml'
[159] link 'azure-pipelines-test-job.yml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/azure-pipelines-test-job.yml'
cell 'chore(test): make all tests install with `npm ci` (#11723)'
[160] link 'chore(test): make all tests install with `npm ci` (#11723)', url='http://127.0.0.1:8023/facebook/create-react-app/-/commit/657739fb15a39fc2bb608ff446c308406afe6388'
cell '3 years ago'
time 'Dec 9, 2021 12:40am GMT+0600'
StaticText '3 years ago'
row ''
cell 'azure-pipelines.yml'
[161] link 'azure-pipelines.yml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/azure-pipelines.yml'
cell ''
cell ''
row ''
cell 'lerna.json'
[162] link 'lerna.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/lerna.json'
cell ''
cell ''
row ''
cell 'netlify.toml'
[163] link 'netlify.toml', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/netlify.toml'
cell ''
cell ''
row ''
cell 'package-lock.json'
[164] link 'package-lock.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/package-lock.json'
cell ''
cell ''
row ''
cell 'package.json'
[165] link 'package.json', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/package.json'
cell ''
cell ''
row ''
cell 'screencast-error.svg'
[166] link 'screencast-error.svg', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/screencast-error.svg'
cell ''
cell ''
row ''
cell 'screencast.svg'
[167] link 'screencast.svg', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/screencast.svg'
cell ''
cell ''
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/README.md'
[56] strong ''
StaticText 'README.md'
heading 'Create React App Build Status PRs Welcome'
[57] link 'Build Status', url='https://dev.azure.com/facebook/create-react-app/_build/latest?definitionId=1&branchName=main'
image 'Build Status', url='https://dev.azure.com/facebook/create-react-app/_apis/build/status/facebook.create-react-app?branchName=main'
[58] link 'PRs Welcome', url='https://github.com/facebook/create-react-app/blob/main/CONTRIBUTING.md'
image 'PRs Welcome', url='https://img.shields.io/badge/PRs-welcome-green.svg'
[23] link 'Logo', url='https://create-react-app.dev/img/logo.svg'
image 'Logo', url='https://create-react-app.dev/img/logo.svg'
paragraph ''
StaticText 'Create React apps with no build configuration.'
list ''
listitem ''
ListMarker 'โข'
[91] link 'Creating an App', url='http://127.0.0.1:8023/facebook/create-react-app#creating-an-app'
StaticText 'โ How to create a new app.'
listitem ''
ListMarker 'โข'
[92] link 'User Guide', url='https://facebook.github.io/create-react-app/'
StaticText 'โ How to develop apps bootstrapped with Create React App.'
paragraph ''
StaticText 'Create React App works on macOS, Windows, and Linux. If something doesnโt work, please'
[59] link 'file an issue', url='https://github.com/facebook/create-react-app/issues/new'
StaticText '. If you have questions or need help, please ask in'
[60] link 'GitHub Discussions', url='https://github.com/facebook/create-react-app/discussions'
StaticText '.'
heading 'Quick Overview'
code ''
StaticText 'npx create-react-app my-app cd my-app npm start'
[24] button ''
paragraph ''
StaticText "If you've previously installed"
code ''
StaticText 'create-react-app'
StaticText 'globally via'
code ''
StaticText 'npm install -g create-react-app'
StaticText ', we recommend you uninstall the package using'
code ''
StaticText 'npm uninstall -g create-react-app'
StaticText 'or'
code ''
StaticText 'yarn global remove create-react-app'
StaticText 'to ensure that npx always uses the latest version.'
paragraph ''
emphasis ''
StaticText '('
[93] link 'npx', url='https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b'
StaticText 'comes with npm 5.2+ and higher, see'
[94] link 'instructions for older npm versions', url='https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f'
StaticText ')'
paragraph ''
StaticText 'Then open'
[61] link 'http://localhost:3000/', url='http://localhost:3000/'
StaticText 'to see your app. When youโre ready to deploy to production, create a minified bundle with'
code ''
StaticText 'npm run build'
StaticText '.'
paragraph ''
[62] link 'npm start', url='https://cdn.jsdelivr.net/gh/facebook/create-react-app@27b42ac7efa018f2541153ab30d63180f5fa39e0/screencast.svg'
image 'npm start', url='https://cdn.jsdelivr.net/gh/facebook/create-react-app@27b42ac7efa018f2541153ab30d63180f5fa39e0/screencast.svg'
heading 'Get Started Immediately'
paragraph ''
StaticText 'You'
[63] strong ''
StaticText 'donโt'
StaticText 'need to install or configure tools like webpack or Babel. They are preconfigured and hidden so that you can focus on the code.'
paragraph ''
StaticText 'Create a project, and youโre good to go.'
heading 'Creating an App'
paragraph ''
[64] strong ''
StaticText 'Youโll need to have Node 14.0.0 or later version on your local development machine'
StaticText '(but itโs not required on the server). We recommend using the latest LTS version. You can use'
[65] link 'nvm', url='https://github.com/creationix/nvm#installation'
StaticText '(macOS/Linux) or'
[66] link 'nvm-windows', url='https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows'
StaticText 'to switch Node versions between different projects.'
paragraph ''
StaticText 'To create a new app, you may choose one of the following methods:'
heading 'npx'
code ''
StaticText 'npx create-react-app my-app'
[25] button ''
paragraph ''
emphasis ''
StaticText '('
[95] link 'npx', url='https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b'
StaticText 'is a package runner tool that comes with npm 5.2+ and higher, see'
[96] link 'instructions for older npm versions', url='https://gist.github.com/gaearon/4064d3c23a77c74a3614c498a8bb1c5f'
StaticText ')'
heading 'npm'
code ''
StaticText 'npm init react-app my-app'
[26] button ''
paragraph ''
emphasis ''
code ''
StaticText 'npm init <initializer>'
StaticText 'is available in npm 6+'
heading 'Yarn'
code ''
StaticText 'yarn create react-app my-app'
[27] button ''
paragraph ''
emphasis ''
[97] link 'yarn create <starter-kit-package>', url='https://yarnpkg.com/lang/en/docs/cli/create/'
code ''
StaticText 'yarn create <starter-kit-package>'
StaticText 'is available in Yarn 0.25+'
paragraph ''
StaticText 'It will create a directory called'
code ''
StaticText 'my-app'
StaticText 'inside the current folder. Inside that directory, it will generate the initial project structure and install the transitive dependencies:'
code ''
StaticText 'my-app โโโ README.md โโโ node_modules โโโ package.json โโโ .gitignore โโโ public โ โโโ favicon.ico โ โโโ index.html โ โโโ manifest.json โโโ src โโโ App.css โโโ App.js โโโ App.test.js โโโ index.css โโโ index.js โโโ logo.svg โโโ serviceWorker.js โโโ setupTests.js'
[28] button ''
paragraph ''
StaticText 'No configuration or complicated folder structures, only the files you need to build your app. Once the installation is done, you can open your project folder:'
code ''
StaticText 'cd my-app'
[29] button ''
paragraph ''
StaticText 'Inside the newly created project, you can run some built-in commands:'
heading 'npm start or yarn start'
code ''
StaticText 'npm start'
code ''
StaticText 'yarn start'
paragraph ''
StaticText 'Runs the app in development mode. Open'
[67] link 'http://localhost:3000', url='http://localhost:3000/'
StaticText 'to view it in the browser.'
paragraph ''
StaticText 'The page will automatically reload if you make changes to the code. You will see the build errors and lint warnings in the console.'
paragraph ''
[68] link 'Build errors', url='https://cdn.jsdelivr.net/gh/marionebl/create-react-app@9f6282671c54f0874afd37a72f6689727b562498/screencast-error.svg'
image 'Build errors', url='https://cdn.jsdelivr.net/gh/marionebl/create-react-app@9f6282671c54f0874afd37a72f6689727b562498/screencast-error.svg'
heading 'npm test or yarn test'
code ''
StaticText 'npm test'
code ''
StaticText 'yarn test'
paragraph ''
StaticText 'Runs the test watcher in an interactive mode. By default, runs tests related to files changed since the last commit.'
paragraph ''
[69] link 'Read more about testing.', url='https://facebook.github.io/create-react-app/docs/running-tests'
heading 'npm run build or yarn build'
code ''
StaticText 'npm run build'
code ''
StaticText 'yarn build'
paragraph ''
StaticText 'Builds the app for production to the'
code ''
StaticText 'build'
StaticText 'folder. It correctly bundles React in production mode and optimizes the build for the best performance.'
paragraph ''
StaticText 'The build is minified and the filenames include the hashes.'
paragraph ''
StaticText 'Your app is ready to be deployed.'
heading 'User Guide'
paragraph ''
StaticText 'You can find detailed instructions on using Create React App and many tips in'
[70] link 'its documentation', url='https://facebook.github.io/create-react-app/'
StaticText '.'
heading 'How to Update to New Versions?'
paragraph ''
StaticText 'Please refer to the'
[71] link 'User Guide', url='https://facebook.github.io/create-react-app/docs/updating-to-new-releases'
StaticText 'for this and other information.'
heading 'Philosophy'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[168] strong ''
StaticText 'One Dependency:'
StaticText 'There is only one build dependency. It uses webpack, Babel, ESLint, and other amazing projects, but provides a cohesive curated experience on top of them.'
listitem ''
ListMarker 'โข'
paragraph ''
[169] strong ''
StaticText 'No Configuration Required:'
StaticText "You don't need to configure anything. A reasonably good configuration of both development and production builds is handled for you so you can focus on writing code."
listitem ''
ListMarker 'โข'
paragraph ''
[170] strong ''
StaticText 'No Lock-In:'
StaticText 'You can โejectโ to a custom setup at any time. Run a single command, and all the configuration and build dependencies will be moved directly into your project, so you can pick up right where you left off.'
heading 'Whatโs Included?'
paragraph ''
StaticText 'Your environment will have everything you need to build a modern single-page React app:'
list ''
listitem ''
ListMarker 'โข'
StaticText 'React, JSX, ES6, TypeScript and Flow syntax support.'
listitem ''
ListMarker 'โข'
StaticText 'Language extras beyond ES6 like the object spread operator.'
listitem ''
ListMarker 'โข'
StaticText 'Autoprefixed CSS, so you donโt need'
code ''
StaticText '-webkit-'
StaticText 'or other prefixes.'
listitem ''
ListMarker 'โข'
StaticText 'A fast interactive unit test runner with built-in support for coverage reporting.'
listitem ''
ListMarker 'โข'
StaticText 'A live development server that warns about common mistakes.'
listitem ''
ListMarker 'โข'
StaticText 'A build script to bundle JS, CSS, and images for production, with hashes and sourcemaps.'
listitem ''
ListMarker 'โข'
StaticText 'An offline-first'
[98] link 'service worker', url='https://developers.google.com/web/fundamentals/getting-started/primers/service-workers'
StaticText 'and a'
[99] link 'web app manifest', url='https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/'
StaticText ', meeting all the'
[100] link 'Progressive Web App', url='https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app'
StaticText 'criteria. ('
emphasis ''
StaticText 'Note: Using the service worker is opt-in as of'
code ''
StaticText 'react-scripts@2.0.0'
StaticText 'and higher'
StaticText ')'
listitem ''
ListMarker 'โข'
StaticText 'Hassle-free updates for the above tools with a single dependency.'
paragraph ''
StaticText 'Check out'
[72] link 'this guide', url='https://github.com/nitishdayal/cra_closer_look'
StaticText 'for an overview of how these tools fit together.'
paragraph ''
StaticText 'The tradeoff is that'
[73] strong ''
StaticText 'these tools are preconfigured to work in a specific way'
StaticText '. If your project needs more customization, you can'
[74] link '"eject"', url='https://facebook.github.io/create-react-app/docs/available-scripts#npm-run-eject'
StaticText 'and customize it, but then you will need to maintain this configuration.'
heading 'Popular Alternatives'
paragraph ''
StaticText 'Create React App is a great fit for:'
list ''
listitem ''
ListMarker 'โข'
[101] strong ''
StaticText 'Learning React'
StaticText 'in a comfortable and feature-rich development environment.'
listitem ''
ListMarker 'โข'
[102] strong ''
StaticText 'Starting new single-page React applications.'
listitem ''
ListMarker 'โข'
[103] strong ''
StaticText 'Creating examples'
StaticText 'with React for your libraries and components.'
paragraph ''
StaticText 'Here are a few common cases where you might want to try something else:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you want to'
[171] strong ''
StaticText 'try React'
StaticText 'without hundreds of transitive build tool dependencies, consider'
[172] link 'using a single HTML file or an online sandbox instead', url='https://reactjs.org/docs/getting-started.html#try-react'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you need to'
[173] strong ''
StaticText 'integrate React code with a server-side template framework'
StaticText 'like Rails, Django or Symfony, or if youโre'
[174] strong ''
StaticText 'not building a single-page app'
StaticText ', consider using'
[175] link 'nwb', url='https://github.com/insin/nwb'
StaticText ', or'
[176] link 'Neutrino', url='https://neutrino.js.org/'
StaticText 'which are more flexible. For Rails specifically, you can use'
[177] link 'Rails Webpacker', url='https://github.com/rails/webpacker'
StaticText '. For Symfony, try'
[178] link "Symfony's webpack Encore", url='https://symfony.com/doc/current/frontend/encore/reactjs.html'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you need to'
[179] strong ''
StaticText 'publish a React component'
StaticText ','
[180] link 'nwb', url='https://github.com/insin/nwb'
StaticText 'can'
[181] link 'also do this', url='https://github.com/insin/nwb#react-components-and-libraries'
StaticText ', as well as'
[182] link "Neutrino's react-components preset", url='https://neutrino.js.org/packages/react-components/'
StaticText '.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If you want to do'
[183] strong ''
StaticText 'server rendering'
StaticText 'with React and Node.js, check out'
[184] link 'Next.js', url='https://nextjs.org/'
StaticText 'or'
[185] link 'Razzle', url='https://github.com/jaredpalmer/razzle'
StaticText '. Create React App is agnostic of the backend, and only produces static HTML/JS/CSS bundles.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'If your website is'
[186] strong ''
StaticText 'mostly static'
StaticText '(for example, a portfolio or a blog), consider using'
[187] link 'Gatsby', url='https://www.gatsbyjs.org/'
StaticText 'or'
[188] link 'Next.js', url='https://nextjs.org/'
StaticText '. Unlike Create React App, Gatsby pre-renders the website into HTML at build time. Next.js supports both server rendering and pre-rendering.'
listitem ''
ListMarker 'โข'
paragraph ''
StaticText 'Finally, if you need'
[189] strong ''
StaticText 'more customization'
StaticText ', check out'
[190] link 'Neutrino', url='https://neutrino.js.org/'
StaticText 'and its'
[191] link 'React preset', url='https://neutrino.js.org/packages/react/'
StaticText '.'
paragraph ''
StaticText 'All of the above tools can work with little to no configuration.'
paragraph ''
StaticText 'If you prefer configuring the build yourself,'
[75] link 'follow this guide', url='https://reactjs.org/docs/add-react-to-a-website.html'
StaticText '.'
heading 'React Native'
paragraph ''
StaticText 'Looking for something similar, but for React Native? Check out'
[76] link 'Expo CLI', url='https://github.com/expo/expo-cli'
StaticText '.'
heading 'Contributing'
paragraph ''
StaticText "We'd love to have your helping hand on"
code ''
StaticText 'create-react-app'
StaticText '! See'
[77] link 'CONTRIBUTING.md', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
StaticText "for more information on what we're looking for and how to get started."
heading 'Supporting Create React App'
paragraph ''
StaticText "Create React App is a community maintained project and all contributors are volunteers. If you'd like to support the future development of Create React App then please consider donating to our"
[78] link 'Open Collective', url='https://opencollective.com/create-react-app'
StaticText '.'
heading 'Credits'
paragraph ''
StaticText 'This project exists thanks to all the people who'
[79] link 'contribute', url='http://127.0.0.1:8023/facebook/create-react-app/-/blob/main/CONTRIBUTING.md'
StaticText '.'
[80] link '', url='https://github.com/facebook/create-react-app/graphs/contributors'
image '', url='https://opencollective.com/create-react-app/contributors.svg?width=890&button=false'
paragraph ''
StaticText 'Thanks to'
[81] link 'Netlify', url='https://www.netlify.com/'
StaticText 'for hosting our documentation.'
heading 'Acknowledgements'
paragraph ''
StaticText 'We are grateful to the authors of existing related projects for their ideas and collaboration:'
list ''
listitem ''
ListMarker 'โข'
[104] link '@eanplatter', url='https://github.com/eanplatter'
listitem ''
ListMarker 'โข'
[105] link '@insin', url='https://github.com/insin'
listitem ''
ListMarker 'โข'
[106] link '@mxstbr', url='https://github.com/mxstbr'
heading 'License'
paragraph ''
StaticText 'Create React App is open source software'
[82] link 'licensed as MIT', url='https://github.com/facebook/create-react-app/blob/main/LICENSE'
StaticText '. The Create React App logo is licensed under a'
[83] link 'Creative Commons Attribution 4.0 International license', url='https://creativecommons.org/licenses/by/4.0/'
StaticText '.'
The task is to star the top eight mostโstarred repositories. - The first repository (**Umano: News Read To You / AndroidSlidingUpPanel**) has already been starred. - The second repository (**Meta / createโreactโapp**) is also currently starred (button shows โUnstarโ). - We still need to star repositories ranked 3 through 8. Thus we should return to the Explore page that lists projects sorted by stars to identify and star the remaining top repos.
go_back()
RootWebArea 'Projects ยท Explore ยท GitLab', focused, url='http://127.0.0.1:8023/explore/projects/starred' banner '' [1] link 'Skip to content', url='http://127.0.0.1:8023/explore/projects/starred#content-body' StaticText 'GitLab' [2] link 'Dashboard', url='http://127.0.0.1:8023/' list '' listitem '' [7] button '', hasPopup='menu', expanded=False list '' listitem '' [8] textbox 'Search GitLab' StaticText '/' list '' listitem '' [9] link 'Create new...', url='http://127.0.0.1:8023/projects/new' listitem '' [10] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze' listitem '' [11] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze' listitem '' [12] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos' StaticText '5' listitem '' [13] link 'Help', url='http://127.0.0.1:8023/help' listitem '' [14] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze' image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon' main '' heading 'Projects' [3] link 'New project', url='http://127.0.0.1:8023/projects/new' list '' listitem '' [15] link 'Yours 23', url='http://127.0.0.1:8023/dashboard/projects' listitem '' [16] link 'Starred 4', url='http://127.0.0.1:8023/dashboard/projects/starred' listitem '' [17] link 'Explore', url='http://127.0.0.1:8023/explore' listitem '' [18] link 'Topics', url='http://127.0.0.1:8023/explore/projects/topics' [4] searchbox 'Filter by name' [5] button '' list '' listitem '' [19] link 'All', url='http://127.0.0.1:8023/explore/projects' listitem '' [20] link 'Most stars', url='http://127.0.0.1:8023/explore/projects/starred' listitem '' [21] link 'Trending', url='http://127.0.0.1:8023/explore/projects/trending' StaticText 'Visibility:' [6] button 'Any', hasPopup='listbox' list '' listitem '' [22] link 'A', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' heading 'Umano: News Read To You / AndroidSlidingUpPanel' [123] link 'Umano: News Read To You / AndroidSlidingUpPanel', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel' StaticText 'Apache License 2.0' paragraph '' StaticText 'This library provides a simple way to add a draggable sliding up panel (popularized by Google Music and Google Maps) to your Android application. Brought to you by Umano.' [23] link '55', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/starrers' [24] link '0', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/forks' [25] link '34', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/merge_requests' [26] link '267', url='http://127.0.0.1:8023/umano/AndroidSlidingUpPanel/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:06am GMT+0600' StaticText '2 years ago' listitem '' [27] link 'C', url='http://127.0.0.1:8023/facebook/create-react-app' heading 'Meta / create-react-app' [124] link 'Meta / create-react-app', url='http://127.0.0.1:8023/facebook/create-react-app' StaticText 'MIT License' paragraph '' StaticText 'Set up a modern web app by running one command.' [28] link '53', url='http://127.0.0.1:8023/facebook/create-react-app/-/starrers' [29] link '0', url='http://127.0.0.1:8023/facebook/create-react-app/-/forks' [30] link '417', url='http://127.0.0.1:8023/facebook/create-react-app/-/merge_requests' [31] link '1.5k', url='http://127.0.0.1:8023/facebook/create-react-app/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:05pm GMT+0600' StaticText '2 years ago' listitem '' [32] link 'F', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' heading 'Karl Kroening / ffmpeg-python' [125] link 'Karl Kroening / ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python' StaticText 'Apache License 2.0' paragraph '' StaticText 'Python bindings for FFmpeg - with complex filtering support' [33] link '51', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers' [34] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks' [35] link '34', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests' [36] link '402', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [37] link 'P', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' heading 'mk-j / PHP_XLSXWriter' [126] link 'mk-j / PHP_XLSXWriter', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter' StaticText 'MIT License' paragraph '' StaticText 'Lightwight XLSX Excel Spreadsheet Writer in PHP' [38] link '47', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/starrers' [39] link '0', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/forks' [40] link '24', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/merge_requests' [41] link '101', url='http://127.0.0.1:8023/mk-j/PHP_XLSXWriter/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:37pm GMT+0600' StaticText '2 years ago' listitem '' [42] link 'A', url='http://127.0.0.1:8023/koush/AndroidAsync' heading 'Koushik Dutta / AndroidAsync' [127] link 'Koushik Dutta / AndroidAsync', url='http://127.0.0.1:8023/koush/AndroidAsync' StaticText 'Other' paragraph '' StaticText 'Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.' [43] link '46', url='http://127.0.0.1:8023/koush/AndroidAsync/-/starrers' [44] link '0', url='http://127.0.0.1:8023/koush/AndroidAsync/-/forks' [45] link '19', url='http://127.0.0.1:8023/koush/AndroidAsync/-/merge_requests' [46] link '333', url='http://127.0.0.1:8023/koush/AndroidAsync/-/issues' StaticText 'Updated' time 'Mar 20, 2023 10:17pm GMT+0600' StaticText '2 years ago' listitem '' [47] link 'P', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' heading 'Erik Linder-Norรฉn / PyTorch-GAN' [128] link 'Erik Linder-Norรฉn / PyTorch-GAN', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN' StaticText 'MIT License' paragraph '' StaticText 'PyTorch implementations of Generative Adversarial Networks.' [48] link '45', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/starrers' [49] link '1', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/forks' [50] link '24', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/merge_requests' [51] link '102', url='http://127.0.0.1:8023/eriklindernoren/PyTorch-GAN/-/issues' StaticText 'Updated' time 'Nov 7, 2025 7:41pm GMT+0600' StaticText '1 day ago' listitem '' [52] link 'A', url='http://127.0.0.1:8023/thoughtbot/administrate' heading 'thoughtbot, inc. / administrate' [129] link 'thoughtbot, inc. / administrate', url='http://127.0.0.1:8023/thoughtbot/administrate' StaticText 'MIT License' paragraph '' StaticText 'A Rails engine that helps you put together a super-flexible admin dashboard.' [53] link '44', url='http://127.0.0.1:8023/thoughtbot/administrate/-/starrers' [54] link '0', url='http://127.0.0.1:8023/thoughtbot/administrate/-/forks' [55] link '32', url='http://127.0.0.1:8023/thoughtbot/administrate/-/merge_requests' [56] link '96', url='http://127.0.0.1:8023/thoughtbot/administrate/-/issues' StaticText 'Updated' time 'Mar 21, 2023 2:40am GMT+0600' StaticText '2 years ago' listitem '' [57] link 'K', url='http://127.0.0.1:8023/keycloak/keycloak' heading 'Keycloak / keycloak' [130] link 'Keycloak / keycloak', url='http://127.0.0.1:8023/keycloak/keycloak' StaticText 'Apache License 2.0' paragraph '' StaticText 'Open Source Identity and Access Management For Modern Applications and Services' [58] link '43', url='http://127.0.0.1:8023/keycloak/keycloak/-/starrers' [59] link '0', url='http://127.0.0.1:8023/keycloak/keycloak/-/forks' [60] link '230', url='http://127.0.0.1:8023/keycloak/keycloak/-/merge_requests' [61] link '1.6k', url='http://127.0.0.1:8023/keycloak/keycloak/-/issues' StaticText 'Updated' time 'Mar 21, 2023 12:16pm GMT+0600' StaticText '2 years ago' listitem '' [62] link 'A', url='http://127.0.0.1:8023/wting/autojump' heading 'William Ting / autojump' [131] link 'William Ting / autojump', url='http://127.0.0.1:8023/wting/autojump' StaticText 'Other' paragraph '' StaticText 'A cd command that learns - easily navigate directories from the command line' [63] link '42', url='http://127.0.0.1:8023/wting/autojump/-/starrers' [64] link '0', url='http://127.0.0.1:8023/wting/autojump/-/forks' [65] link '54', url='http://127.0.0.1:8023/wting/autojump/-/merge_requests' [66] link '158', url='http://127.0.0.1:8023/wting/autojump/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:35am GMT+0600' StaticText '2 years ago' listitem '' [67] link 'O', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' heading 'OpenAPI Tools / openapi-generator' [132] link 'OpenAPI Tools / openapi-generator', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator' StaticText 'Apache License 2.0' paragraph '' StaticText 'OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)' [68] link '42', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/starrers' [69] link '0', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/forks' [70] link '402', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/merge_requests' [71] link '3.5k', url='http://127.0.0.1:8023/OpenAPITools/openapi-generator/-/issues' StaticText 'Updated' time 'Mar 20, 2023 11:27pm GMT+0600' StaticText '2 years ago' listitem '' [72] link 'P', url='http://127.0.0.1:8023/yzhao062/pyod' heading 'Yue Zhao / pyod' [133] link 'Yue Zhao / pyod', url='http://127.0.0.1:8023/yzhao062/pyod' StaticText 'BSD 2-Clause "Simplified" License' paragraph '' StaticText 'A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection)' [73] link '41', url='http://127.0.0.1:8023/yzhao062/pyod/-/starrers' [74] link '0', url='http://127.0.0.1:8023/yzhao062/pyod/-/forks' [75] link '16', url='http://127.0.0.1:8023/yzhao062/pyod/-/merge_requests' [76] link '144', url='http://127.0.0.1:8023/yzhao062/pyod/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:14pm GMT+0600' StaticText '2 years ago' listitem '' [77] link 'C', url='http://127.0.0.1:8023/capnproto/capnproto' heading "Cap'n Proto / capnproto" [134] link "Cap'n Proto / capnproto", url='http://127.0.0.1:8023/capnproto/capnproto' StaticText 'Other' paragraph '' StaticText "Cap'n Proto serialization/RPC system - core tools and C++ library" [78] link '39', url='http://127.0.0.1:8023/capnproto/capnproto/-/starrers' [79] link '0', url='http://127.0.0.1:8023/capnproto/capnproto/-/forks' [80] link '47', url='http://127.0.0.1:8023/capnproto/capnproto/-/merge_requests' [81] link '136', url='http://127.0.0.1:8023/capnproto/capnproto/-/issues' StaticText 'Updated' time 'Mar 20, 2023 9:38pm GMT+0600' StaticText '2 years ago' listitem '' [82] link 'P', url='http://127.0.0.1:8023/PyAV-Org/PyAV' heading 'PyAV / PyAV' [135] link 'PyAV / PyAV', url='http://127.0.0.1:8023/PyAV-Org/PyAV' StaticText 'BSD 3-Clause "New" or "Revised" License' paragraph '' StaticText "Pythonic bindings for FFmpeg's libraries." [83] link '39', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/starrers' [84] link '0', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/forks' [85] link '26', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/merge_requests' [86] link '37', url='http://127.0.0.1:8023/PyAV-Org/PyAV/-/issues' StaticText 'Updated' time 'Mar 21, 2023 5:21am GMT+0600' StaticText '2 years ago' listitem '' [87] link 'N', url='http://127.0.0.1:8023/http-party/node-http-proxy' heading 'http ... PARTY! / node-http-proxy' [136] link 'http ... PARTY! / node-http-proxy', url='http://127.0.0.1:8023/http-party/node-http-proxy' StaticText 'Other' paragraph '' StaticText 'A full-featured http proxy for node.js' [88] link '38', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/starrers' [89] link '0', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/forks' [90] link '102', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/merge_requests' [91] link '482', url='http://127.0.0.1:8023/http-party/node-http-proxy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:28pm GMT+0600' StaticText '2 years ago' listitem '' [92] link 'E', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' heading 'Zhongyi Tong / electronic-wechat' [137] link 'Zhongyi Tong / electronic-wechat', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat' StaticText 'MIT License' paragraph '' StaticText '๐ฌ A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.' [93] link '35', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/starrers' [94] link '0', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/forks' [95] link '10', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/merge_requests' [96] link '198', url='http://127.0.0.1:8023/geeeeeeeeek/electronic-wechat/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:48am GMT+0600' StaticText '2 years ago' listitem '' [97] link 'W', url='http://127.0.0.1:8023/youfou/wxpy' heading 'Youfou / wxpy' [138] link 'Youfou / wxpy', url='http://127.0.0.1:8023/youfou/wxpy' StaticText 'MIT License' paragraph '' StaticText 'ๅพฎไฟกๆบๅจไบบ / ๅฏ่ฝๆฏๆไผ้ ็ๅพฎไฟกไธชไบบๅท API โจ โจ' [98] link '35', url='http://127.0.0.1:8023/youfou/wxpy/-/starrers' [99] link '0', url='http://127.0.0.1:8023/youfou/wxpy/-/forks' [100] link '8', url='http://127.0.0.1:8023/youfou/wxpy/-/merge_requests' [101] link '295', url='http://127.0.0.1:8023/youfou/wxpy/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:13pm GMT+0600' StaticText '2 years ago' listitem '' [102] link 'F', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' heading 'Matt Harvey / five-video-classification-methods' [139] link 'Matt Harvey / five-video-classification-methods', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods' StaticText 'MIT License' paragraph '' StaticText 'Code that accompanies my blog post outlining five video classification methods in Keras and TensorFlow' [103] link '35', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/starrers' [104] link '0', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/forks' [105] link '7', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/merge_requests' [106] link '47', url='http://127.0.0.1:8023/harvitronix/five-video-classification-methods/-/issues' StaticText 'Updated' time 'Mar 20, 2023 2:25am GMT+0600' StaticText '2 years ago' listitem '' [107] link 'C', url='http://127.0.0.1:8023/covid19india/covid19india-react' heading 'covid19india / covid19india-react' [140] link 'covid19india / covid19india-react', url='http://127.0.0.1:8023/covid19india/covid19india-react' StaticText 'MIT License' paragraph '' StaticText 'Tracking the impact of COVID-19 in India' [108] link '34', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/starrers' [109] link '0', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/forks' [110] link '11', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/merge_requests' [111] link '27', url='http://127.0.0.1:8023/covid19india/covid19india-react/-/issues' StaticText 'Updated' time 'Mar 21, 2023 4:55am GMT+0600' StaticText '2 years ago' listitem '' [112] link 'A', url='http://127.0.0.1:8023/Arachni/arachni' heading 'Arachni - Web Application Security Scanner Framework / arachni' [141] link 'Arachni - Web Application Security Scanner Framework / arachni', url='http://127.0.0.1:8023/Arachni/arachni' StaticText 'Other' paragraph '' StaticText 'Web Application Security Scanner Framework' [113] link '34', url='http://127.0.0.1:8023/Arachni/arachni/-/starrers' [114] link '0', url='http://127.0.0.1:8023/Arachni/arachni/-/forks' [115] link '8', url='http://127.0.0.1:8023/Arachni/arachni/-/merge_requests' [116] link '125', url='http://127.0.0.1:8023/Arachni/arachni/-/issues' StaticText 'Updated' time 'Mar 20, 2023 7:38pm GMT+0600' StaticText '2 years ago' listitem '' [117] link 'B', url='http://127.0.0.1:8023/facebook/buck' heading 'Meta / buck' [142] link 'Meta / buck', url='http://127.0.0.1:8023/facebook/buck' StaticText 'Apache License 2.0' paragraph '' StaticText 'A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.' [118] link '34', url='http://127.0.0.1:8023/facebook/buck/-/starrers' [119] link '0', url='http://127.0.0.1:8023/facebook/buck/-/forks' [120] link '22', url='http://127.0.0.1:8023/facebook/buck/-/merge_requests' [121] link '201', url='http://127.0.0.1:8023/facebook/buck/-/issues' StaticText 'Updated' time 'Mar 21, 2023 1:37am GMT+0600' StaticText '2 years ago' list '' listitem '' [122] link 'Next', url='http://127.0.0.1:8023/explore/projects/starred?non_archived=true&page=2&sort=stars'
On this page the star toggle button is not present; it appears only on the individual project page. Thus we must navigate to each repositoryโs page, click the star toggle (IDโฏ8 on that page), and then return to the explore list before proceeding to the next repository. No other repositories need to be starred for the topโeight requirement.
click('125')RootWebArea 'Karl Kroening / ffmpeg-python ยท GitLab', focused, url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
banner ''
[1] link 'Skip to content', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#content-body'
StaticText 'GitLab'
[2] link 'Dashboard', url='http://127.0.0.1:8023/'
list ''
listitem ''
[42] button '', hasPopup='menu', expanded=False
list ''
listitem ''
[43] textbox 'Search GitLab'
StaticText '/'
list ''
listitem ''
[44] link 'Create new...', url='http://127.0.0.1:8023/projects/new'
listitem ''
[45] link 'Issues', url='http://127.0.0.1:8023/dashboard/issues?assignee_username=byteblaze'
listitem ''
[46] link 'Merge requests', url='http://127.0.0.1:8023/dashboard/merge_requests?assignee_username=byteblaze'
listitem ''
[47] link 'To-Do List', url='http://127.0.0.1:8023/dashboard/todos'
StaticText '5'
listitem ''
[48] link 'Help', url='http://127.0.0.1:8023/help'
listitem ''
[49] link 'Byte Blaze', url='http://127.0.0.1:8023/byteblaze'
image 'Byte Blaze', url='https://www.gravatar.com/avatar/99a4297c867eada2606b9b6973f081f9?s=48&d=identicon'
complementary 'Project navigation'
list ''
listitem 'ffmpeg-python'
[50] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
StaticText 'F'
listitem ''
[51] link 'Project information', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/activity'
listitem ''
[52] link 'Repository', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master'
listitem ''
[53] link 'Issues', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/issues'
StaticText '402'
listitem ''
[54] link 'Merge requests', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/merge_requests'
StaticText '34'
listitem ''
[55] link 'CI/CD', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/pipelines'
listitem ''
[56] link 'Deployments', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/environments'
listitem ''
[57] link 'Packages and registries', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/packages'
listitem ''
[58] link 'Monitor', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/incidents'
listitem ''
[59] link 'Analytics', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/value_stream_analytics'
listitem ''
[60] link 'Wiki', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/wikis/home'
listitem ''
[61] link 'Snippets', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/snippets'
[3] button 'Collapse sidebar'
alert '', live='assertive', atomic, relevant='additions text'
[4] button 'Dismiss'
alert '', live='assertive', atomic, relevant='additions text'
StaticText "You can't push or pull repositories using SSH until you add an SSH key to your profile."
[19] link 'Add SSH key', url='http://127.0.0.1:8023/-/profile/keys'
[20] button "Don't show again"
navigation 'Breadcrumbs'
list ''
listitem ''
[62] link 'Karl Kroening', url='http://127.0.0.1:8023/kkroening'
listitem ''
[63] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python'
main ''
StaticText 'F'
heading 'ffmpeg-python'
StaticText 'Project ID: 133'
[5] button 'Copy project ID', live='polite', relevant='additions text'
[6] link 'Request Access', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/project_members/request_access'
[7] button '', hasPopup='menu', expanded=False
[8] button 'Unstar'
[9] link '52', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/starrers'
[10] link 'Fork', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks/new'
[11] link '0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/forks'
navigation ''
list ''
listitem ''
[92] link '458 Commits', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commits/master'
[117] strong ''
StaticText '458'
listitem ''
[93] link '45 Branches', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/branches'
[118] strong ''
StaticText '45'
listitem ''
[94] link '14 Tags', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tags'
[119] strong ''
StaticText '14'
listitem ''
[95] strong ''
StaticText '15.1 MB'
StaticText 'Project Storage'
paragraph ''
StaticText 'Python bindings for FFmpeg - with complex filtering support'
image 'user avatar', url='https://www.gravatar.com/avatar/a8ce807b69e77f46c8b15b86ae1839c5?s=80&d=identicon'
[12] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
StaticText 'Christian Clauss authored'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
[13] button 'Unverified'
group ''
StaticText 'df129c7b'
[21] button 'Copy commit SHA', live='polite', relevant='additions text'
[14] button 'master', hasPopup='menu', expanded=False
navigation 'Files breadcrumb'
list ''
listitem ''
[96] link 'ffmpeg-python', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/'
listitem ''
StaticText '/'
[97] button 'Add to tree', hasPopup='menu', expanded=False
[15] link 'Find file', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/find_file/master'
[16] link 'Web IDE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#modal-confirm-fork-webide'
[17] button 'Download'
StaticText 'Select Archive Format'
[18] link 'Clone', url='http://127.0.0.1:8023/kkroening/ffmpeg-python#'
list ''
listitem ''
[64] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
listitem ''
[65] link 'Apache License 2.0', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
table 'Files, directories, and submodules in the path / for commit reference master', live='polite', relevant='additions text'
rowgroup ''
row ''
columnheader 'Name'
columnheader 'Last commit'
columnheader 'Last update'
rowgroup ''
row ''
cell '.github/workflows'
[120] link '.github/workflows', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/.github'
cell 'Upgrade GitHub Actions again (#679)'
[121] link 'Upgrade GitHub Actions again (#679)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/35886c970c7b3a757115f5a7b6fd1753e64832ce'
cell '3 years ago'
time 'Jul 12, 2022 3:02am GMT+0600'
StaticText '3 years ago'
row ''
cell 'doc'
[122] link 'doc', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/doc'
cell 'Fix `heigth` -> `height` typo (#596)'
[123] link 'Fix `heigth` -> `height` typo (#596)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fc41f4aa84084bfae6e2db6a5a1fe7949bb28bae'
cell '3 years ago'
time 'Mar 7, 2022 3:55pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'examples'
[124] link 'examples', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/examples'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[125] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'ffmpeg'
[126] link 'ffmpeg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/tree/master/ffmpeg'
cell "Let's implicitly fix a typo (#681)"
[127] link "Let's implicitly fix a typo (#681)", url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6'
cell '3 years ago'
time 'Jul 12, 2022 3:03am GMT+0600'
StaticText '3 years ago'
row ''
cell '.gitignore'
[128] link '.gitignore', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/.gitignore'
cell 'Add input/output support in `run` command; update docs'
[129] link 'Add input/output support in `run` command; update docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/ac57e2df132d4ea05dacee642de74d057bd98f5d'
cell '7 years ago'
time 'May 20, 2018 2:13pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'LICENSE'
[130] link 'LICENSE', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/LICENSE'
cell 'Update LICENSE with full license text'
[131] link 'Update LICENSE with full license text', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/221f57428d7ff3bb39ee635bbeb101a68efdbf53'
cell '7 years ago'
time 'Jan 10, 2018 4:41pm GMT+0600'
StaticText '7 years ago'
row ''
cell 'MANIFEST'
[132] link 'MANIFEST', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/MANIFEST'
cell 'Update readme; bump version; ignore errors in `git rev-parse`'
[133] link 'Update readme; bump version; ignore errors in `git rev-parse`', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f32ec43b61f4453997bf0ae630d8b7a7fce98b18'
cell '8 years ago'
time 'May 28, 2017 2:42pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README'
[134] link 'README', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README'
cell 'Update readme filename'
[135] link 'Update readme filename', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/708513b912fdb0ec443d51566edcb91a1634a470'
cell '8 years ago'
time 'May 14, 2017 4:23pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'README.md'
[136] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
cell 'Add FFmpeg installation instructions (#642)'
[137] link 'Add FFmpeg installation instructions (#642)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/cb9d400467014dd371ff5bb24d86be3fa6df8a2b'
cell '3 years ago'
time 'Mar 7, 2022 3:19pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'pyproject.toml'
[138] link 'pyproject.toml', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pyproject.toml'
cell 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)'
[139] link 'Re-apply Black formatting, and wrap docstrings at ~88 columns. (#639)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/fd1da13f110ad4d20ab768bfafaeef36dce2862f'
cell '3 years ago'
time 'Mar 7, 2022 3:24am GMT+0600'
StaticText '3 years ago'
row ''
cell 'pytest.ini'
[140] link 'pytest.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/pytest.ini'
cell 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs'
[141] link 'Add overlay, hflip, and drawbox operators; use a more real-world example in docs', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/f3b32d6d41d65701aa65bae951518e1ec387b483'
cell '8 years ago'
time 'May 14, 2017 4:18pm GMT+0600'
StaticText '8 years ago'
row ''
cell 'requirements.txt'
[142] link 'requirements.txt', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/requirements.txt'
cell 'Use Black formatter'
[143] link 'Use Black formatter', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/8ea0f4ca4b3531f90d141b1eea9db73d98ff62b9'
cell '6 years ago'
time 'Jun 3, 2019 3:03pm GMT+0600'
StaticText '6 years ago'
row ''
cell 'setup.cfg'
[144] link 'setup.cfg', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.cfg'
cell 'Make `setup.py test` work'
[145] link 'Make `setup.py test` work', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6960751de0b14e5a3640fe16d91f44008397026d'
cell '8 years ago'
time 'Jun 14, 2017 11:29am GMT+0600'
StaticText '8 years ago'
row ''
cell 'setup.py'
[146] link 'setup.py', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/setup.py'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[147] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
row ''
cell 'tox.ini'
[148] link 'tox.ini', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/tox.ini'
cell 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)'
[149] link 'Import ABC from collections.abc for Python 3.9+ compatibility (#330)', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/commit/6189cd6861a90f6f52e6a8ba2db0fada54134194'
cell '3 years ago'
time 'Mar 7, 2022 3:46pm GMT+0600'
StaticText '3 years ago'
article ''
[22] link 'README.md', url='http://127.0.0.1:8023/kkroening/ffmpeg-python/-/blob/master/README.md'
[66] strong ''
StaticText 'README.md'
heading 'ffmpeg-python: Python bindings for FFmpeg'
paragraph ''
[67] link 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml'
image 'CI', url='https://github.com/kkroening/ffmpeg-python/actions/workflows/ci.yml/badge.svg'
[23] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/formula.png'
heading 'Overview'
paragraph ''
StaticText 'There are tons of Python FFmpeg wrappers out there but they seem to lack complex filter support.'
code ''
StaticText 'ffmpeg-python'
StaticText 'works well for simple as well as complex signal graphs.'
heading 'Quickstart'
paragraph ''
StaticText 'Flip a video horizontally:'
code ''
StaticText "import ffmpeg stream = ffmpeg . input ( 'input.mp4' ) stream = ffmpeg . hflip ( stream ) stream = ffmpeg . output ( stream , 'output.mp4' ) ffmpeg . run ( stream )"
[24] button ''
paragraph ''
StaticText 'Or if you prefer a fluent interface:'
code ''
StaticText "import ffmpeg ( ffmpeg . input ( 'input.mp4' ) . hflip () . output ( 'output.mp4' ) . run () )"
[25] button ''
heading 'API reference'
[68] link 'API reference', url='https://kkroening.github.io/ffmpeg-python/'
heading 'Complex filter graphs'
paragraph ''
StaticText 'FFmpeg is extremely powerful, but its command-line interface gets really complicated rather quickly - especially when working with signal graphs and doing anything more than trivial.'
paragraph ''
StaticText 'Take for example a signal graph that looks like this:'
paragraph ''
[69] link 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
image 'Signal graph', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/graph1.png'
paragraph ''
StaticText 'The corresponding command-line arguments are pretty gnarly:'
code ''
StaticText 'ffmpeg -i input.mp4 -i overlay.png -filter_complex "[0]trim=start_frame=10:end_frame=20[v0]; \\\\ [0]trim=start_frame=30:end_frame=40[v1];[v0][v1]concat=n=2[v2];[1]hflip[v3]; \\\\ [v2][v3]overlay=eof_action=repeat[v4];[v4]drawbox=50:50:120:120:red:t=5[v5]" \\\\ -map [ v5] output.mp4'
[26] button ''
paragraph ''
StaticText "Maybe this looks great to you, but if you're not an FFmpeg command-line expert, it probably looks alien."
paragraph ''
StaticText "If you're like me and find Python to be powerful and readable, it's easier with"
code ''
StaticText 'ffmpeg-python'
StaticText ':'
code ''
StaticText "import ffmpeg in_file = ffmpeg . input ( 'input.mp4' ) overlay_file = ffmpeg . input ( 'overlay.png' ) ( ffmpeg . concat ( in_file . trim ( start_frame = 10 , end_frame = 20 ), in_file . trim ( start_frame = 30 , end_frame = 40 ), ) . overlay ( overlay_file . hflip ()) . drawbox ( 50 , 50 , 120 , 120 , color = 'red' , thickness = 5 ) . output ( 'out.mp4' ) . run () )"
[27] button ''
paragraph ''
code ''
StaticText 'ffmpeg-python'
StaticText 'takes care of running'
code ''
StaticText 'ffmpeg'
StaticText 'with the command-line arguments that correspond to the above filter diagram, in familiar Python terms.'
[28] link 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
image 'Screenshot', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/screenshot.png'
paragraph ''
StaticText 'Real-world signal graphs can get a heck of a lot more complex, but'
code ''
StaticText 'ffmpeg-python'
StaticText 'handles arbitrarily large (directed-acyclic) signal graphs.'
heading 'Installation'
heading 'Installing ffmpeg-python'
code ''
StaticText 'ffmpeg-python'
paragraph ''
StaticText 'The latest version of'
code ''
StaticText 'ffmpeg-python'
StaticText 'can be acquired via a typical pip install:'
code ''
StaticText 'pip install ffmpeg-python'
[29] button ''
paragraph ''
StaticText 'Or the source can be cloned and installed from locally:'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git pip install -e ./ffmpeg-python'
[30] button ''
blockquote ''
paragraph ''
[98] strong ''
StaticText 'Note'
StaticText ':'
code ''
StaticText 'ffmpeg-python'
StaticText 'makes no attempt to download/install FFmpeg, as'
code ''
StaticText 'ffmpeg-python'
StaticText 'is merely a pure-Python wrapper - whereas FFmpeg installation is platform-dependent/environment-specific, and is thus the responsibility of the user, as described below.'
heading 'Installing FFmpeg'
paragraph ''
StaticText 'Before using'
code ''
StaticText 'ffmpeg-python'
StaticText ', FFmpeg must be installed and accessible via the'
code ''
StaticText '$PATH'
StaticText 'environment variable.'
paragraph ''
StaticText 'There are a variety of ways to install FFmpeg, such as the'
[70] link 'official download links', url='https://ffmpeg.org/download.html'
StaticText ', or using your package manager of choice (e.g.'
code ''
StaticText 'sudo apt install ffmpeg'
StaticText 'on Debian/Ubuntu,'
code ''
StaticText 'brew install ffmpeg'
StaticText 'on OS X, etc.).'
paragraph ''
StaticText 'Regardless of how FFmpeg is installed, you can check if your environment path is set correctly by running the'
code ''
StaticText 'ffmpeg'
StaticText 'command from the terminal, in which case the version information should appear, as in the following example (truncated for brevity):'
code ''
StaticText '$ ffmpeg ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)'
[31] button ''
blockquote ''
paragraph ''
[99] strong ''
StaticText 'Note'
StaticText ': The actual version information displayed here may vary from one system to another; but if a message such as'
code ''
StaticText 'ffmpeg: command not found'
StaticText 'appears instead of the version information, FFmpeg is not properly installed.'
heading 'Examples'
[71] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
paragraph ''
StaticText 'When in doubt, take a look at the'
[72] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText "to see if there's something that's close to whatever you're trying to do."
paragraph ''
StaticText 'Here are a few:'
list ''
listitem ''
ListMarker 'โข'
paragraph ''
[150] link 'Convert video to numpy array', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-video-to-numpy-array'
listitem ''
ListMarker 'โข'
paragraph ''
[151] link 'Generate thumbnail for video', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#generate-thumbnail-for-video'
listitem ''
ListMarker 'โข'
paragraph ''
[152] link 'Read raw PCM audio via pipe', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#convert-sound-to-raw-pcm-audio'
listitem ''
ListMarker 'โข'
paragraph ''
[153] link 'JupyterLab/Notebook stream editor', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#jupyter-stream-editor'
[32] link 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
image 'jupyter demo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/jupyter-demo.gif'
list ''
listitem ''
ListMarker 'โข'
[100] link 'Tensorflow/DeepDream streaming', url='https://github.com/kkroening/ffmpeg-python/blob/master/examples/README.md#tensorflow-streaming'
[33] link 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
image 'deep dream streaming', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/examples/graphs/dream.png'
paragraph ''
StaticText 'See the'
[73] link 'Examples README', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText 'for additional examples.'
heading 'Custom Filters'
paragraph ''
StaticText "Don't see the filter you're looking for? While"
code ''
StaticText 'ffmpeg-python'
StaticText 'includes shorthand notation for some of the most commonly used filters (such as'
code ''
StaticText 'concat'
StaticText '), all filters can be referenced via the'
code ''
StaticText '.filter'
StaticText 'operator:'
code ''
StaticText "stream = ffmpeg . input ( 'dummy.mp4' ) stream = ffmpeg . filter ( stream , 'fps' , fps = 25 , round = 'up' ) stream = ffmpeg . output ( stream , 'dummy2.mp4' ) ffmpeg . run ( stream )"
[34] button ''
paragraph ''
StaticText 'Or fluently:'
code ''
StaticText "( ffmpeg . input ( 'dummy.mp4' ) . filter ( 'fps' , fps = 25 , round = 'up' ) . output ( 'dummy2.mp4' ) . run () )"
[35] button ''
paragraph ''
[74] strong ''
StaticText 'Special option names:'
paragraph ''
StaticText 'Arguments with special names such as'
code ''
StaticText '-qscale:v'
StaticText '(variable bitrate),'
code ''
StaticText '-b:v'
StaticText '(constant bitrate), etc. can be specified as a keyword-args dictionary as follows:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . output ( 'out.mp4' , ** { 'qscale:v' : 3 }) . run () )"
[36] button ''
paragraph ''
[75] strong ''
StaticText 'Multiple inputs:'
paragraph ''
StaticText 'Filters that take multiple input streams can be used by passing the input streams as an array to'
code ''
StaticText 'ffmpeg.filter'
StaticText ':'
code ''
StaticText "main = ffmpeg . input ( 'main.mp4' ) logo = ffmpeg . input ( 'logo.png' ) ( ffmpeg . filter ([ main , logo ], 'overlay' , 10 , 10 ) . output ( 'out.mp4' ) . run () )"
[37] button ''
paragraph ''
[76] strong ''
StaticText 'Multiple outputs:'
paragraph ''
StaticText 'Filters that produce multiple outputs can be used with'
code ''
StaticText '.filter_multi_output'
StaticText ':'
code ''
StaticText "split = ( ffmpeg . input ( 'in.mp4' ) . filter_multi_output ( 'split' ) # or `.split()` ) ( ffmpeg . concat ( split [ 0 ], split [ 1 ]. reverse ()) . output ( 'out.mp4' ) . run () )"
[38] button ''
paragraph ''
StaticText '(In this particular case,'
code ''
StaticText '.split()'
StaticText 'is the equivalent shorthand, but the general approach works for other multi-output filters)'
paragraph ''
[77] strong ''
StaticText 'String expressions:'
paragraph ''
StaticText 'Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:'
code ''
StaticText "( ffmpeg . input ( 'in.mp4' ) . filter ( 'crop' , 'in_w-2*10' , 'in_h-2*20' ) . input ( 'out.mp4' ) )"
[39] button ''
paragraph ''
StaticText 'When in doubt, refer to the'
[78] link 'existing filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
StaticText ','
[79] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
StaticText ', and/or the'
[80] link 'official ffmpeg documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
StaticText '.'
heading 'Frequently asked questions'
paragraph ''
[81] strong ''
StaticText 'Why do I get an import/attribute/etc. error from'
code ''
StaticText 'import ffmpeg'
StaticText '?'
paragraph ''
StaticText 'Make sure you ran'
code ''
StaticText 'pip install ffmpeg-python'
StaticText 'and'
emphasis ''
[101] strong ''
StaticText 'not'
StaticText ''
code ''
StaticText 'pip install ffmpeg'
StaticText '(wrong) or'
code ''
StaticText 'pip install python-ffmpeg'
StaticText '(also wrong).'
paragraph ''
[82] strong ''
StaticText 'Why did my audio stream get dropped?'
paragraph ''
StaticText 'Some ffmpeg filters drop audio streams, and care must be taken to preserve the audio in the final output. The'
code ''
StaticText '.audio'
StaticText 'and'
code ''
StaticText '.video'
StaticText 'operators can be used to reference the audio/video portions of a stream so that they can be processed separately and then re-combined later in the pipeline.'
paragraph ''
StaticText 'This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the way while users may refer to the official ffmpeg documentation as to why certain filters drop audio.'
paragraph ''
StaticText 'As usual, take a look at the'
[83] link 'examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline'
StaticText '('
emphasis ''
StaticText 'Audio/video pipeline'
StaticText 'in particular).'
paragraph ''
[84] strong ''
StaticText 'How can I find out the used command line arguments?'
paragraph ''
StaticText 'You can run'
code ''
StaticText 'stream.get_args()'
StaticText 'before'
code ''
StaticText 'stream.run()'
StaticText 'to retrieve the command line arguments that will be passed to'
code ''
StaticText 'ffmpeg'
StaticText '. You can also run'
code ''
StaticText 'stream.compile()'
StaticText 'that also includes the'
code ''
StaticText 'ffmpeg'
StaticText 'executable as the first argument.'
paragraph ''
[85] strong ''
StaticText 'How do I do XYZ?'
paragraph ''
StaticText 'Take a look at each of the links in the'
[86] link 'Additional Resources', url='https://kkroening.github.io/ffmpeg-python/'
StaticText "section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far."
paragraph ''
StaticText 'Issues not directly related to'
code ''
StaticText 'ffmpeg-python'
StaticText "or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed."
paragraph ''
StaticText 'That said, we hope to continue improving our documentation and provide a community of support for people using'
code ''
StaticText 'ffmpeg-python'
StaticText 'to do cool and exciting things.'
heading 'Contributing'
[40] link 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
image 'ffmpeg-python logo', url='https://raw.githubusercontent.com/kkroening/ffmpeg-python/master/doc/logo.png'
paragraph ''
StaticText 'One of the best things you can do to help make'
code ''
StaticText 'ffmpeg-python'
StaticText 'better is to answer'
[87] link 'open questions', url='https://github.com/kkroening/ffmpeg-python/labels/question'
StaticText 'in the issue tracker. The questions that are answered will be tagged and incorporated into the documentation, examples, and other learning resources.'
paragraph ''
StaticText 'If you notice things that could be better in the documentation or overall development experience, please say so in the'
[88] link 'issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
StaticText '. And of course, feel free to report any bugs or submit feature requests.'
paragraph ''
StaticText "Pull requests are welcome as well, but it wouldn't hurt to touch base in the issue tracker or hop on the"
[89] link 'Matrix chat channel', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
StaticText 'first.'
paragraph ''
StaticText 'Anyone who fixes any of the'
[90] link 'open bugs', url='https://github.com/kkroening/ffmpeg-python/labels/bug'
StaticText 'or implements'
[91] link 'requested enhancements', url='https://github.com/kkroening/ffmpeg-python/labels/enhancement'
StaticText 'is a hero, but changes should include passing tests.'
heading 'Running tests'
code ''
StaticText 'git clone git@github.com:kkroening/ffmpeg-python.git cd ffmpeg-python virtualenv venv . venv/bin/activate # (OS X / Linux) venv \\\\b in \\\\a ctivate # (Windows) pip install -e .[dev] pytest'
[41] button ''
heading 'Special thanks'
list ''
listitem ''
ListMarker 'โข'
[102] link 'Fabrice Bellard', url='https://bellard.org/'
listitem ''
ListMarker 'โข'
[103] link 'The FFmpeg team', url='https://ffmpeg.org/donations.html'
listitem ''
ListMarker 'โข'
[104] link 'Arne de Laat', url='https://github.com/153957'
listitem ''
ListMarker 'โข'
[105] link 'Davide Depau', url='https://github.com/depau'
listitem ''
ListMarker 'โข'
[106] link 'Dim', url='https://github.com/lloti'
listitem ''
ListMarker 'โข'
[107] link 'Noah Stier', url='https://github.com/noahstier'
heading 'Additional Resources'
list ''
listitem ''
ListMarker 'โข'
[108] link 'API Reference', url='https://kkroening.github.io/ffmpeg-python/'
listitem ''
ListMarker 'โข'
[109] link 'Examples', url='https://github.com/kkroening/ffmpeg-python/tree/master/examples'
listitem ''
ListMarker 'โข'
[110] link 'Filters', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py'
listitem ''
ListMarker 'โข'
[111] link 'FFmpeg Homepage', url='https://ffmpeg.org/'
listitem ''
ListMarker 'โข'
[112] link 'FFmpeg Documentation', url='https://ffmpeg.org/ffmpeg.html'
listitem ''
ListMarker 'โข'
[113] link 'FFmpeg Filters Documentation', url='https://ffmpeg.org/ffmpeg-filters.html'
listitem ''
ListMarker 'โข'
[114] link 'Test cases', url='https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/tests/test_ffmpeg.py'
listitem ''
ListMarker 'โข'
[115] link 'Issue tracker', url='https://github.com/kkroening/ffmpeg-python/issues'
listitem ''
ListMarker 'โข'
StaticText 'Matrix Chat:'
[116] link '#ffmpeg-python:matrix.org', url='https://riot.im/app/#/room/#ffmpeg-python:matrix.org'
N/A. Agent failed to find a valid solution.
stop('N/A. Agent failed to find a valid solution.')